MCTest
Francisco de Assis Zampirolli
C O M O C R I A R E C O R R I G I R E X A M E S
P A R A M E T R I Z A D O S A U T O M A T I C A M E N T E
2023
MCTest:
Como Criar e Corrigir Exames Parametrizados
Automaticamente
Francisco de Assis Zampirolli
25 de agosto de 2023
© Copyright by Francisco de Assis Zampirolli da Universidade Federal do ABC (UFABC).
Todos os direitos reservados.
Projeto gr´afico: Francisco de Assis Zampirolli
CATALOGAC¸
˜
AO NA FONTE
SISTEMA DE BIBLIOTECAS DA UNIVERSIDADE FEDERAL DO ABC
Respons´avel: xxx CRB: xxx
Zampirolli, Francisco de Assis
MCTest: Como Criar e Corrigir Exames Parametrizados Automatica-
mente / Francisco de Assis Zampirolli Santo Andr´e, SP, 2023.
242 p. : il.
ISBN: XXX-XX-XXXXX-XX-X
1. Avalia¸ao Individual. 2. Corre¸ao Autom´atica. 3. Quest˜ao
Param´etrica. 4. Exerc´ıcio de Programa¸ao. 5. Moodle. I. Francisco de
Assis Zampirolli. II. Universidade Federal do ABC (UFABC). III. Centro
de Matem´atica, Computa¸ao e Cogni¸ao (CMCC). IV. T´ıtulo
CDU 02:141:005.7
Francisco de Assis Zampirolli MCTest ii
Dedico este trabalho com imenso amor `a minha esposa Cristina e aos meus filhos,
Rafael e Eduardo. Agrade¸co de corao por estarem sempre ao meu lado em todas as
conquistas e desafios da vida.
Francisco de Assis Zampirolli MCTest iii
Francisco de Assis Zampirolli MCTest iv
Ep´ıgrafe
“N˜ao basta saber, ´e preciso aplicar. ao basta querer, ´e preciso tamb´em fazer.”
(Johann Wolfgang von Goethe)
v
Francisco de Assis Zampirolli MCTest vi
Pref´acio
A avalia¸ao dos estudantes ´e uma atividade crucial para o trabalho de um professor, ao
permitir avaliar de maneira precisa o desempenho dos estudantes ao longo do curso, fornecendo
feedback importante para o seu desenvolvimento acadˆemico. Al´em disso, a avalia¸ao tamb´em ´e um
meio importante para aprimorar a pr´atica educativa, permitindo que os professores identifiquem
pontos fortes e fracos de sua metodologia e aprimorem sua abordagem pedag´ogica para proporcionar
um melhor aprendizado aos estudantes.
Avaliar in´umeros estudantes individualizadamente ´e uma tarefa desafiadora para professores
em todos os n´ıveis de ensino, especialmente em disciplinas que exigem habilidades e competˆencias
espec´ıficas. Esse desafio ´e ainda maior em exames que envolvem exerc´ıcios de programa¸ao (EP),
uma vez que exigem uma avalia¸ao minuciosa dos processos de resolu¸ao de problemas, al´em da
compreens˜ao do odigo e da ogica utilizados pelos estudantes.
Este livro visa prover uma solu¸ao abrangente e eficaz para a avalia¸ao de estudantes. A abor-
dagem colaborativa adotada por docentes da Universidade Federal do ABC (UFABC), empregando
o sistema de odigo aberto MCTest, viabiliza a reutiliza¸ao de conjuntos de quest˜oes previamente
utilizados por outros colegas que ministram a mesma disciplina.
O MCTest permite a cria¸ao e corre¸ao de exames de ultipla escolha e dissertativa, incluindo
EP no plugin VPL (Virtual Programming Lab) do ambiente Moodle. Ele oferece quest˜oes parame-
trizadas e exames individualizados que podem ser usados por arias turmas simultaneamente. A
principal contribui¸ao desse sistema reside na capacidade de compartilhar quest˜oes parametrizadas,
que incorporam enunciados em L
A
T
E
X intercalados com odigos em Python.
Este livro consolida mais de uma ecada de experiˆencia na avalia¸ao anual de milhares de
estudantes, a partir de 2012, quando se deu in´ıcio `a automatiza¸ao do processo seletivo da Espe-
cializa¸ao em Tecnologias e Sistemas de Informa¸ao (TSI) da UFABC, com a cria¸ao da primeira
vers˜ao do MCTest, desenvolvida em Matlab. Desde enao, o sistema passou por um substancial
processo de evolu¸ao, beneficiando-se da colabora¸ao de diversos colegas da UFABC, cujas contri-
bui¸oes permitiram identificar novas necessidades e aprimorar suas funcionalidades. A vers˜ao web
mais recente abordada neste livro ´e a 5.2 e encontrando-se dispon´ıvel para instala¸ao no endere¸co
github.com/fzampirolli/mctest. Duas implanta¸oes ativas do sistema est˜ao em execu¸ao na UFABC:
a vers˜ao de produ¸ao, hospedada em mctest.ufabc.edu.br; e a vers˜ao de desenvolvimento, backup e
divulga¸ao em vision.ufabc.edu.br.
´
E de extrema importˆancia enfatizar que o MCTest ao tem um car´ater comercial e ao
segue rigidamente o ciclo de vida convencional de desenvolvimento de software. Sua abordagem ´e
vii
fundamentada na prototipagem, seguindo os princ´ıpios da Engenharia de Software, em suma, novos
requisitos e prot´otipo apido para valida¸ao de conceitos. No entanto, at´e o momento, o sistema
ainda ao atingiu sua vers˜ao final, desenvolvido predominantemente por um ´unico programador
(com exce¸ao da adapta¸ao realizada no VPL, pelo Heitor Rodrigues Savegnago e seu orientador
Prof. Dr. Paulo Henrique Pisani, a quem expresso minha sincera gratid˜ao). Para poder progredir
em dire¸ao a um produto comercial, seriam necess´arios processos de engenharia reversa e cont´ınuos
aprimoramentos.
Apesar das limita¸oes acima mencionadas, o MCTest ´e utilizado por alguns docentes e gestores
da UFABC, desempenhando um papel de significativa relevˆancia no ˆambito da avalia¸ao discente.
Essa utiliza¸ao resulta ao apenas em uma not´avel redu¸ao da carga de trabalho repetitivo, mas
tamb´em contribui para a mitiga¸ao de poss´ıveis ocorrˆencias de falhas.
A implanta¸ao do sistema ´e agilizada por meio da ado¸ao do ambiente VirtualBox (virtual-
box.org), o qual viabiliza a implanta¸ao local com prop´ositos de testes. Ao optar pela instala¸ao dos
sistemas operacionais Ubuntu ou Mint, seguida pela subsequente execu¸ao do arquivo setup-all.sh
disponibilizado no reposit´orio GitHub (github.com/fzampirolli/mctest), mediante privil´egios de ad-
ministrador, o MCTest ´e instalado de forma cont´ınua, estando acompanhado por um conjunto inicial
de dados de teste presente no arquivo mctest.sql. Os exemplos ilustrativos apresentados neste
trabalho encontram-se no arquivo book/1ed-br/mctestLivro.sql, estando tamb´em acess´ıveis no
reposit´orio GitHub. A fim de empregar esses exemplos no MCTest, ´e necess´ario observar as ins-
tru¸oes fornecidas no arquivo setup-all.sh.
A obra foi elaborada em 14 cap´ıtulos, divididos em quatro partes principais. A Parte I tem
como principal objetivo introduzir os leitores ao sistema, oferecendo detalhes sobre seus componentes
e funcionalidades essenciais. A Parte II explora a variedade de tipos de quest˜oes dispon´ıveis. A Parte
III abrange a cria¸ao e administra¸ao de exames. Por fim, a Parte IV proporciona estudos de caso e
exemplos pr´aticos, sendo estes ´ultimos divulgados em artigos cient´ıficos. Estes experimentos foram
realizados em modalidades h´ıbridas, totalmente remotas e totalmente presenciais. Para aqueles sem
interesse na parte param´etrica, que requer conhecimentos de programa¸ao, ou sem usar o banco de
quest˜oes, a a possibilidade de pular diversos cap´ıtulos, conforme explicado no final do Cap´ıtulo 1.
Ao usar o MCTest, os professores tˆem `a disposi¸ao uma ferramenta para aprimorar a avalia¸ao
das habilidades e competˆencias dos estudantes. Assim, os docentes conseguem reduzir o esfor¸co
exigido na cria¸ao e corre¸ao de exames e atividades pr´aticas. No entanto, o ponto crucial desse
processo reside na ampla cole¸ao de quest˜oes elaboradas e disponibilizadas pelos professores da
UFABC, que atualmente totalizam 2.273 quest˜oes, embora limitadas aos docentes de cada disciplina.
O MCTest permanece em constante processo de evolu¸ao e aprimoramento, incentivando os
usu´arios a contribu´ırem com suas experiˆencias para torn´a-lo ainda mais eficiente e alinhado com as
demandas educacionais em constante transforma¸ao.
Ao longo desta obra, as funcionalidades do MCTest ser˜ao exploradas, permitindo aos leitores
compreenderem suas caracter´ısticas e recursos. Espera-se que esse trabalho proveja um guia completo
sobre como empregar o MCTest em ambientes educacionais.
A partir de 2023, estudantes de Trabalho de Conclus˜ao de Curso e Mestrado em Ciˆencia da
Francisco de Assis Zampirolli MCTest viii
Computa¸ao na UFABC desempenham um papel ativo no processo de implementa¸ao de melhorias no
sistema. a expectativas de que essas melhorias sejam incorporadas `a vers˜ao atual disponibilizada
no GitHub.
´
E importante ressaltar, contudo, que ainda existem ´areas que demandam aprimora-
mento. Isso inclui a navega¸ao entre as interfaces e a avalia¸ao das competˆencias e habilidades dos
estudantes. Por exemplo, em um EP submetido por meio do VPL, quando se requer a utiliza¸ao de
estruturas de repeti¸ao com o comando while, a avalia¸ao deve ser condizente com o cumprimento
ou descumprimento dessa especifica¸ao.
Com o intuito de aprimorar a compreens˜ao durante a leitura, ´e importante salientar que
os seguintes termos ser˜ao amplamente utilizados ao longo deste trabalho: exerc´ıcio de programa¸ao
(EP), quest˜ao de ultipla escolha (QM), quest˜ao dissertativa ou de texto (QT) e quadro de respostas
(QR), onde os estudantes realizam as marca¸oes das QMs.
Leitores interessados em adquirir vers˜oes impressas deste livro podem encontrar mais in-
forma¸oes na pasta book dispon´ıvel no seguinte endere¸co: github.com/fzampirolli/mctest.
Este livro foi concebido e elaborado exclusivamente pelo autor. No entanto, lamentavelmente,
ao passou por um processo de revis˜ao formal. Os textos apresentados foram predominantemente
avaliados por meio de consultas a redes generativas, pertencentes a uma categoria de modelos de
aprendizado de aquina. A compreens˜ao dos colegas interessados ´e confiada para o aprimoramento
de edi¸oes futuras por meio de seus valiosos feedbacks construtivos.
Finalmente, ´e de suma importˆancia enfatizar que as opini˜oes e declara¸oes apresentadas nesta
obra ao devidamente embasadas por referˆencias sempre que poss´ıvel, ou por meio de experimentos
realizados e devidamente citados no pr´oprio livro. Nos casos em que a obten¸ao de referˆencias se torna
invi´avel, tais posicionamentos refletem a perspectiva pessoal do autor e ao devem ser considerados
uma representa¸ao oficial da institui¸ao `a qual o autor est´a afiliado.
Francisco de Assis Zampirolli
25 de agosto de 2023
Francisco de Assis Zampirolli MCTest ix
Francisco de Assis Zampirolli MCTest x
Lista de Abreviaturas e Siglas
ACM Association for Computing Machinery
AVA Ambiente Virtual de Aprendizagem
BCT Bacharelado em Ciˆencia e Tecnologia
BCC Bacharelado em Ciˆencia da Computa¸ao
CMCC Centro de Matem´atica, Computa¸ao e Cogni¸ao
CS1-2-3 Computer Science 1, 2 and 3 / cursos introdut´orios de computa¸ao definidos pela ACM
EaD Ensino a Distˆancia
EP Exerc´ıcio de Programa¸ao
EPUFABC Escola Preparat´oria da UFABC
EdUFABC Editora da UFABC
FAPESP Funda¸ao de Amparo `a Pesquisa do Estado de ao Paulo
FEEC Faculdade de Engenharia El´etrica e de Computa¸ao
FTP File Transfer Protocol / Protocolo de Transferˆencia de Arquivos
IDE Integrated Development Environment / Ambiente de Desenvolvimento Integrado
IES Institui¸ao de Ensino Superior
IME Instituto de Matem´atica e Estat´ıstica
INEP Instituto Nacional de Estudos e Pesquisas Educacionais An´ısio Teixeira
INPI Instituto Nacional de Propriedade Intelectual
MCTest Multiple Choice Test / Teste de M´ultipla Escolha (nome inicial, mas inclui tamem QT)
MEC Minist´erio da Educa¸ao
Moodle Modular Object-Oriented Dynamic Learning Environment / Ambiente de Aprendizagem
Dinˆamico Modular Orientado a Objeto (um exemplo de AVA)
xi
NETEL N´ucleo Educacional de Tecnologias e L´ınguas
PROEC Pr´o-Reitoria de Extens˜ao e Cultura
PROGRAD Pr´o-Reitoria de Gradua¸ao
PROPG Pr´o-Reitoria de os-Gradua¸ao
QM Quest˜ao de M´ultipla Escolha
QT Quest˜ao de Texto ou Dissertativa
QR Quadro de Respostas (para as quest˜oes de m´ultipla escolha)
TCI Teoria Cl´assica ao Item
TIC Tecnologia da Informa¸ao e Comunica¸ao
TSI Especializa¸ao em Tecnologias e Sistemas de Informa¸ao
TRI Teoria de Resposta ao Item
UFABC Universidade Federal do ABC
USP Universidade de ao Paulo
VPL Virtual Programming Lab
Francisco de Assis Zampirolli MCTest xii
Conte´udo
Lista de Figuras vii
Lista de odigos xiii
1 Introdu¸ao 1
1.1 Apresenta¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 etodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Breve hist´orico do MCTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 MCTest no TSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Vers˜oes do MCTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 MCTest nos processos seletivos e exames de disciplinas do TSI . . . . . . . . . 6
1.2.4 MCTest na Escola Preparat´oria . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Direitos autorais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Direitos autorais do software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Direitos autorais das quest˜oes dispon´ıveis no BD . . . . . . . . . . . . . . . . . 8
1.4 Instalando o MCTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Organiza¸ao do livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
I Fundamentos do MCTest 13
2 Vis˜ao geral do MCTest 15
2.1 Navega¸ao geral e usu´arios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Criar entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Instituto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Disciplina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.4 Turma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.5 opico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
iii
CONTE
´
UDO
3 Recursos avan¸cados 39
3.1 Administrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.1 Criar um curso relacionado a dois institutos . . . . . . . . . . . . . . . . . . . 40
3.1.2 Criar uma disciplina relacionada a dois cursos . . . . . . . . . . . . . . . . . . 40
3.1.3 Acesso ao banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Coordenador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.1 Criar um opico relacionado a duas ou mais disciplinas . . . . . . . . . . . . . 43
3.2.2 Criar arias turmas com arquivo CSV . . . . . . . . . . . . . . . . . . . . . . . 47
3.3 Professor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.1 Criar turma com arquivo CSV . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.2 Criar turma com arquivo CSV restri¸oes . . . . . . . . . . . . . . . . . . . . 51
3.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
II Quest˜oes no MCTest 55
4 Quest˜oes est´aticas 57
4.1 Tutoriais gerais sobre a navega¸ao de quest˜oes . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Quest˜ao de m´ultipla escolha (QM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3 Quest˜ao dissertativa (QT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Quest˜oes param´etricas 69
5.1 QM param´etrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.1.1 Um exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.1.2 QM param´etrica no MCTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2 QT param´etrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.1 Exemplo 1 Teste de Mesa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.2 Exemplo 2 Teste de Mesa e gabarito . . . . . . . . . . . . . . . . . . . . . . 76
5.2.3 Exemplo 3 Teste de Mesa e gabarito com settrace . . . . . . . . . . . . . . 78
5.3 QT param´etrica, com odigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.1 Introdu¸ao ao Moodle e ao VPL . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.3.2 Quest˜ao com exerc´ıcio de programa¸ao no Moodle+VPL . . . . . . . . . . . . 85
5.3.3 Quest˜ao com exerc´ıcio de programa¸ao no MCTest+Moodle+VPL . . . . . . . 87
5.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
III Exames no MCTest 95
6 Vis˜ao geral dos exames 97
6.1 Acesso `a tela de exames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2 Recorte I da tela de exame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Francisco de Assis Zampirolli MCTest iv
CONTE
´
UDO
6.2.1
´
Area `a esquerda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.2
´
Area central . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.2.3
´
Area `a direita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.3 Recorte II da tela de exame turmas . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.4 Recorte III da tela de exame quest˜oes . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5 Recorte IV da tela de exame configurando os detalhes . . . . . . . . . . . . . . . . . 104
6.6 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7 Exames com Quadro de Respostas (QR) 109
7.1 Utilizando exames exclusivamente com QR . . . . . . . . . . . . . . . . . . . . . . . . 110
7.1.1 Estilo vertical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.1.2 Estilo horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.2 Restri¸oes nos QRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.3 Corrigindo exames com QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3.1 Arquivo CSV com as corre¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.3.2 Teoria de Resposta ao Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.3.3 Feedback ao estudante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8 Exames com QR+QM e/ou QT 121
8.1 Criando QMs e uma QT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.2 Criando as varia¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.3 Detalhando os gabaritos no arquivo CSV . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.4 Criando o PDF do exame com QR+QM+QT . . . . . . . . . . . . . . . . . . . . . . 127
8.5 Corrigindo exames com QR+QM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.6 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
9 Varia¸oes de exames com QM+QT para o Moodle 133
9.1 Criando exames e exportando arquivos Aiken e XML . . . . . . . . . . . . . . . . . . 134
9.1.1 QM equa¸ao de primeiro grau idade . . . . . . . . . . . . . . . . . . . . . 134
9.1.2 QM equa¸ao da reta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
9.1.3 QT com resposta exata ordena parte do vetor . . . . . . . . . . . . . . . . . 135
9.1.4 Criando exame e exportando as varia¸oes . . . . . . . . . . . . . . . . . . . . . 137
9.2 Importando arquivo XML no Moodle . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
10 Exames com MCTest+Moodle+VPL 151
10.1 Criando um exame com QT integrado ao VPL . . . . . . . . . . . . . . . . . . . . . . 152
10.1.1 Criando uma nova quest˜ao integrada ao VPL . . . . . . . . . . . . . . . . . . 152
10.1.2 Criando as varia¸oes e imprimindo o PDF do exame . . . . . . . . . . . . . . . 156
10.1.3 Criando e configurando a atividade VPL para o exame . . . . . . . . . . . . . 157
10.1.4 Solu¸oes da atividade VPL para o exame . . . . . . . . . . . . . . . . . . . . . 159
Francisco de Assis Zampirolli MCTest v
CONTE
´
UDO
10.2 Detalhando o arquivo linker.json . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
10.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
IV Experimentos 165
11 MCTest vers˜oes 1, 2 e 3 - Quadro de Respostas (QR) 167
11.1 MCTest-1: vers˜ao no Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.2 MCTest-2: vers˜ao no Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
11.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
12 MCTest vers˜oes 4, 4.G e 5 175
12.1 MCTest-4: gerando e corrigindo quest˜oes criadas no L
A
T
E
X . . . . . . . . . . . . . . . 176
12.1.1 Artigo descrevendo as vers˜oes do MCTest 4 e 4.G . . . . . . . . . . . . . . . . 176
12.1.2 Artigo comparando as modalidades semipresencial e presencial CS1 com base
na utilidade do MCTest-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
12.1.3 Artigo definindo a parametriza¸ao do MCTest ap´os a vers˜ao 4 . . . . . . . . . 180
12.2 MCTest-5: a vers˜ao web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
12.2.1 Artigo apresentando a primeira vers˜ao web do MCTest . . . . . . . . . . . . . 184
12.2.2 Artigo descrevendo o MCTest em conjunto com Google Forms e Google Sheets 193
12.2.3 Artigo descrevendo a ado¸ao de QMs com pesos diferentes nas alternativas . 197
12.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
13 MCTest+Moodle+VPL 203
13.1 MCTest-5, com Moodle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
13.2 MCTest-5, com Moodle+VPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
13.2.1 Artigo com a primeira integra¸ao entre MCTest+Moodle+VPL . . . . . . . . 204
13.2.2 Artigo aplicando a integra¸ao MCTest+Moodle+VPL em CS0 . . . . . . . . . 206
13.2.3 Artigo sobre o uso de m´ultiplas linguagens de programa¸ao em CS1 . . . . . . 208
13.2.4 Artigo aplicando a integra¸ao MCTest+Moodle+VPL em CS1 . . . . . . . . . 209
13.2.5 Artigo explorando a integra¸ao de jogos no ensino de CS0 . . . . . . . . . . . 210
13.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
14 Conclus˜oes 213
14.1 Novas possibilidades de aprimoramento . . . . . . . . . . . . . . . . . . . . . . . . . . 214
14.2 Novas publica¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
14.3 Novas edi¸oes deste livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Bibliografia 217
Francisco de Assis Zampirolli MCTest vi
Lista de Figuras
1.1 Organiza¸ao do livro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 Tela principal do MCTest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Recorte do menu de navega¸ao principal do MCTest. . . . . . . . . . . . . . . . . . . 18
2.3 Tela para a inscri¸ao do usu´ario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Tela para administrador atualizar, apagar ou criar um instituto. . . . . . . . . . . . . 20
2.5 Tela para o administrador criar um instituto. . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Tela apresentando os detalhes de um instituto. . . . . . . . . . . . . . . . . . . . . . . 22
2.7 Tela para confirmar a exclus˜ao do instituto. . . . . . . . . . . . . . . . . . . . . . . . 22
2.8 Tela que apresenta a lista de cursos, na qual o administrador pode atualizar, apagar
ou criar um novo curso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.9 Tela para administrador criar um curso novo. . . . . . . . . . . . . . . . . . . . . . . 24
2.10 Tela apresentando os detalhes de um curso. . . . . . . . . . . . . . . . . . . . . . . . . 25
2.11 Tela que apresenta a lista de disciplinas, na qual o administrador pode atualizar,
apagar ou criar uma nova disciplina. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.12 Tela para o administrador criar uma disciplina. Tela semelhante `a primeira parte da
tela de atualizar uma disciplina. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.13 Segunda parte da tela para o administrador atualizar uma disciplina. . . . . . . . . . 28
2.14 (Parte 1) Tela apresentando os detalhes de uma disciplina. . . . . . . . . . . . . . . . 29
2.15 (Parte 2) Continua¸ao da tela apresentando os detalhes de uma disciplina. . . . . . . 30
2.16 Tela que apresenta a lista de turmas, na qual um professor de uma disciplina pode
criar uma nova turma, al´em de atualizar ou apagar turmas existentes. . . . . . . . . . 31
2.17 Tela utilizada pelo professor para criar uma nova turma ap´os clicar no bot˜ao “Criar
uma nova Turma”, na tela da Figura 2.16.
´
E importante destacar que o nome da
turma ao pode conter acentos ou caracteres especiais, pois esse nome far´a parte do
cabcalho do exame. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.18 Tela para um professor de uma disciplina poder atualizar uma turma, inserindo estu-
dantes com a importa¸ao de um arquivo no formato CSV. . . . . . . . . . . . . . . . 33
2.19 Tela para um professor de uma disciplina poder atualizar uma turma, atualizando ou
apagando estudantes da turma. Al´em disso, ´e poss´ıvel incluir um novo estudante na
turma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
vii
LISTA DE FIGURAS
2.20 Tela para um professor de uma disciplina poder atualizar os dados de um estudante
da turma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.21 Tela com a lista de opicos para o coordenador (ou administrador) criar, atualizar ou
apagar um opico de disciplina(s). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.22 Tela para o coordenador (ou administrador) atualizar um opico de uma disciplina. . 36
2.23 Tela apresentando os detalhes de um opico. . . . . . . . . . . . . . . . . . . . . . . . 37
2.24 Tela apresentando as trˆes primeiras quest˜oes de um opico. . . . . . . . . . . . . . . . 38
3.1 Tela com a lista de institutos vista pelo administrador, que pode atualizar, apagar ou
criar um instituto para simular um curso pertencer aos institutos CECS e CMCC. . . 41
3.2 Tela com a lista de curso, vista pelo administrador. . . . . . . . . . . . . . . . . . . . 42
3.3 Tela para o administrador criar um curso novo relacionado a dois institutos. Manter
a tecla “Ctrl” pressionada para escolher mais de uma op¸ao. . . . . . . . . . . . . . . 43
3.4 Tela com a lista de curso, vista pelo administrador, ap´os ter criado o curso Engenharia
da Computa¸ao na Figura 3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5 Tela com a lista de disciplinas, vista pelo administrador, com destaque para a disciplina
PDI, que est´a relacionada aos cursos de BCC e POSCOMP. . . . . . . . . . . . . . . 45
3.6 Tela com a lista de entidades que o administrador pode fazer manuten¸ao diretamente
no BD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.7 Tela com a lista de opicos, vista pelo coordenador.
´
E poss´ıvel observar o comparti-
lhamento de opicos entre disciplinas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.8 Tela com detalhes da disciplina de Processamento da Informa¸ao, vista pelo coorde-
nador, com os opicos compartilhados tamb´em apresentados na Figura 3.7. . . . . . . 49
3.9 (Parte 1) Tela de cria¸ao da disciplina de Processamento da Informa¸ao pelo adminis-
trador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.10 (Parte 2) Tela de cria¸ao da disciplina de Processamento da Informa¸ao pelo admi-
nistrador.
´
E poss´ıvel incluir professores, turmas e estudantes pela importa¸ao de dois
arquivos no formato CSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.11 Tela mostrando o resultado do cadastro de estudantes utilizando a importa¸ao de um
arquivo no formato CSV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.1 Tela para o professor visualizar todas as quest˜oes de disciplinas que est´a cadastrado. . 58
4.2 Exibi¸ao de erro ao tentar modificar quest˜ao criada por outro autor. . . . . . . . . . . 59
4.3 Exibi¸ao da quest˜ao QE1 criada por outro autor. . . . . . . . . . . . . . . . . . . . . 59
4.4 Tela para o professor visualizar suas quest˜oes e criar novas, incluindo importa¸ao de
formato TXT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.5 Tela para um professor criar uma nova quest˜ao. . . . . . . . . . . . . . . . . . . . . . 62
4.6 Tela com valores preenchidos para criar uma nova quest˜ao, antes de clicar no bot˜ao
“Salvar”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.7 Tela de atualiza¸ao para QM sem alternativas e feedback, previamente criada pelo
professor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Francisco de Assis Zampirolli MCTest viii
LISTA DE FIGURAS
4.8 Recorte do PDF gerado ap´os clicar no bot˜ao “Criar-PDF”, na Figura 4.7. . . . . . . . 66
4.9 Recorte do PDF gerado ap´os clicar no bot˜ao “Criar-PDF”, na Figura 4.7, para a
quest˜ao atualizada com cinco alternativas. . . . . . . . . . . . . . . . . . . . . . . . . 66
4.10 Recorte do PDF gerado ap´os clicar no bot˜ao “Criar-PDF”, na Figura 4.7, para uma
quest˜ao dissertativa (“Type: QT”). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.11 Recorte da “Descri¸ao” de uma QT de Teste de Mesa. . . . . . . . . . . . . . . . . . . 67
4.12 Recorte do PDF gerado da QT de Teste de Mesa. . . . . . . . . . . . . . . . . . . . . 68
5.1 Recorte do PDF gerado para a quest˜ao definida no odigo 5.3. . . . . . . . . . . . . . 75
5.2 Recorte do PDF gerado para a quest˜ao definida no odigo 5.4. . . . . . . . . . . . . . 76
5.3 Recorte do PDF gerado para a quest˜ao definida nos odigos 5.5 e 5.6. . . . . . . . . . 93
5.4 Recorte do PDF gerado para a quest˜ao definida nos odigos 5.8 e 5.9. . . . . . . . . . 94
5.5 Recorte do PDF gerado para a QT definida nos odigos 5.12 e 5.13. . . . . . . . . . . 94
6.1 Tela de exames do professor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2 Tela para criar um novo exame. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.3 Recorte do PDF gerado com as configura¸oes padr˜ao, contendo apenas o cabcalho e
o QR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.4 Recorte I da tela de exame ver explica¸oes no texto sobre os bot˜oes. . . . . . . . . . 101
6.5 Recorte II da tela de exame, com as turmas do professor. . . . . . . . . . . . . . . . . 104
6.6 Recorte III da tela de exame, com as quest˜oes da disciplina. . . . . . . . . . . . . . . 105
6.7 Recorte IV da tela de exame, configurando os detalhes do exame. . . . . . . . . . . . 105
7.1 Recorte de um exame digitalizado em formato PDF no estilo vertical. . . . . . . . . . 111
7.2 Recorte de um exame em formato PDF no estilo vertical, com as instru¸oes. . . . . . 111
7.3 Recorte de um exame digitalizado em formato PDF no estilo vertical. . . . . . . . . . 112
7.4 Exemplos de PDFs de exames com 245 quest˜oes no estilo horizontal e 200 quest˜oes no
estilo vertical. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.5 Exemplo de PDF de um exame com 18 quest˜oes, cinco quest˜oes por bloco e dois blocos
por linha. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.6 Exemplos de exames digitalizados a partir do PDF mostrado na Figura 7.5. . . . . . . 115
7.7 Recortes das quest˜oes marcadas erradamente na Figura 7.6–(b). . . . . . . . . . . . . 116
7.8 PDF com o feedback das corre¸oes enviado para o e-mail do estudante. . . . . . . . . 119
8.1 Recorte da tela de configura¸ao do exame. . . . . . . . . . . . . . . . . . . . . . . . . 124
8.2 Recorte da tela de configura¸ao do exame, detalhando o bot˜ao “Criar-Varia¸oes”. . . 125
8.3 Mensagem ap´os clicar no bot˜ao “Criar-Varia¸oes”. . . . . . . . . . . . . . . . . . . . . 125
8.4 E-mail enviado ao professor ap´os clicar no bot˜ao “Criar-Varia¸oes”. . . . . . . . . . . 126
8.5 Recorte do PDF do exame gerado ap´os a ao do bot˜ao “Criar-PDF”. . . . . . . . . . 128
8.6 E-mail enviado ao professor ap´os clicar no bot˜ao “Criar-PDF”. . . . . . . . . . . . . . 129
8.7 Recorte do PDF do exame enviado como feedaback por e-mail ao estudante, ap´os a
ao do bot˜ao “Upload-PDF”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Francisco de Assis Zampirolli MCTest ix
LISTA DE FIGURAS
9.1 Recorte do PDF gerado para a quest˜ao das idades dos irm˜aos, referente ao odigo 9.1. 134
9.2 Recorte do PDF gerado para a quest˜ao da equa¸ao da reta definida no odigo 9.2. . . 136
9.3 Recorte do PDF gerado para a quest˜ao com resposta exata definida pelos odigos 9.3
e 9.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.4 Recorte da tela do exame com as quatro quest˜oes marcadas. . . . . . . . . . . . . . . 139
9.5 Recorte da tela do exame com os detalhes da configura¸ao. . . . . . . . . . . . . . . . 139
9.6 Recorte da tela do exame com os detalhes da configura¸ao. . . . . . . . . . . . . . . . 140
9.7 Recorte do e-mail recebido ap´os clicar em “Criar-Varia¸oes”. . . . . . . . . . . . . . . 140
9.8 Exemplo de QM no Moodle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
9.9 Exemplo da quest˜ao exata do Moodle. . . . . . . . . . . . . . . . . . . . . . . . . . . 148
9.10 Exemplo exame gerado pelo MCTest. . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
10.1 Recorte do PDF gerado para a quest˜ao de matriz definida nos odigos 10.1 e 10.2. . . 155
10.2 Recorte da tela de exame, configurando os detalhes do exame com integra¸ao VPL. . 156
10.3 Recorte do e-mail recebido ap´os clicar em “Criar-Varia¸oes”. . . . . . . . . . . . . . . 157
10.4 Recorte da tela do PDF do exame com integra¸ao VPL. . . . . . . . . . . . . . . . . . 158
11.1 Recorte do PDF com o QR utilizado no MCTest-1. . . . . . . . . . . . . . . . . . . . 168
11.2 Demonstra¸ao da captura a partir de um gabarito impresso. . . . . . . . . . . . . . . 171
11.3 As quest˜oes marcadas na parte inferior indicam um valor ponderado atribu´ıdo a
quest˜ao, as maras `a direita representam diferentes gabaritos e a identifica¸ao do ga-
barito ´e a marca `a direita e abaixo. Fonte: China et al. (2016). . . . . . . . . . . . . . 171
11.4 Estat´ısticas sobre o n´umero de respostas corretas em uma turma. Fonte: China et al.
(2016). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
12.1 Estrutura de pastas do MCTest-4. Fonte: Zampirolli, Batista e Quilici-Gonzalez (2016).177
12.2 Recorte de um exame gerado com MCTest-4.G. . . . . . . . . . . . . . . . . . . . . . 180
12.3 Recorte do PDF gerado para a quest˜ao de MRU do odigo 12.1. . . . . . . . . . . . . 182
12.4 Recorte do PDF gerado para a quest˜ao para criar uma matriz do odigo 12.2. . . . . 183
12.5 Recorte do PDF gerado para a quest˜ao param´etrica com equa¸ao e figura referente ao
odigo 12.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
12.6 Recorte do PDF gerado para a quest˜ao param´etrica com grafo e figura referente ao
odigo 12.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
12.7 Recorte do PDF gerado para a quest˜ao param´etrica com matriz criada pelos odigos
12.6 e 12.7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
12.8 Planilha mostrando o question´ario preenchido de um estudante. Adaptado de Zampi-
rolli et al. (2020). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
12.9 Exemplo de exame utilizado em alculo 1. Adaptado de Zampirolli et al. (2020). . . . 196
12.10Visualiza¸ao do arquivo CSV com as corre¸oes. Adaptado de Zampirolli et al. (2021). 197
12.11alculo final do exame. Adaptado de Zampirolli et al. (2021). . . . . . . . . . . . . . 198
Francisco de Assis Zampirolli MCTest x
LISTA DE FIGURAS
13.1 (a) estrutura de arquivos e pastas; (b) recorte da estrutura de arquivos e pastas gerados
automaticamente, detalhando a pasta 1.py para Python. Fonte: Zampirolli et al. (2021).208
Francisco de Assis Zampirolli MCTest xi
LISTA DE FIGURAS
Francisco de Assis Zampirolli MCTest xii
Lista de odigos
5.1 Exemplo de m´etodo para calcular a ´area de um c´ırculo. . . . . . . . . . . . . . . . . . 71
5.2 Exemplo de QM param´etrica para calcular a ´area do c´ırculo. . . . . . . . . . . . . . . 74
5.3 Exemplo de QM param´etrica para calcular a ´area do c´ırculo, utilizando o m´etodo
createWrongAnswers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.4 Exemplo simples de descri¸ao de QT param´etrica para teste de mesa. . . . . . . . . . 77
5.5 Exemplo pr´atico de teste de mesa param´etrico mostrando o gabarito Parte 1: Des-
cri¸ao de quest˜ao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.6 Exemplo pr´atico de teste de mesa param´etrico mostrando o gabarito Parte 2: Bloco
de odigo em Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.7 Exemplo de uso de sys.settrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.8 Exemplo pr´atico de teste de mesa param´etrico utilizando sys.settrace Parte 1:
Descri¸ao de quest˜ao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.9 Exemplo pr´atico de teste de mesa param´etrico utilizando sys.settrace Parte 2:
Bloco de odigo em Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.10 Programa em Python para alculo do fatorial. . . . . . . . . . . . . . . . . . . . . . . 86
5.11 Programa em Python para alculo de parcelas. . . . . . . . . . . . . . . . . . . . . . . 88
5.12 Exemplo de QT param´etrica utilizando MCTest+Moodle+VPL Parte 1: Descri¸ao
de quest˜ao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.13 Exemplo de QT param´etrica utilizando MCTest+Moodle+VPL Parte 2: Bloco de
odigo em Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.1 Exemplo de QT com resposta exata. . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
9.1 Exemplo de QM param´etrica para calcular as idades dos irm˜aos. . . . . . . . . . . . . 135
9.2 Exemplo de QM param´etrica para calcular a equa¸ao da reta. . . . . . . . . . . . . . 136
9.3 Exemplo de quest˜ao param´etrica exata Parte 1: Descri¸ao de quest˜ao. . . . . . . . . 137
9.4 Exemplo de quest˜ao param´etrica exata Parte 2: Bloco de odigo. . . . . . . . . . . 138
10.1 Exemplo de quest˜ao com matriz utilizando MCTest+Moodle+VPL Parte 1: Des-
cri¸ao de quest˜ao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
10.2 Exemplo de quest˜ao com matriz utilizando MCTest+Moodle+VPL Parte 2: Bloco
de odigo em Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
10.3 M´etodo mais gen´erico que matriz2texto para formatar uma matriz. . . . . . . . . . 155
10.4 Exemplo de solu¸ao para a quest˜ao de matriz do exame no VPL. . . . . . . . . . . . . 160
10.5 Exemplo de solu¸ao compacta e gen´erica para a quest˜ao de matriz do exame no VPL. 161
xiii
LISTA DE C
´
ODIGOS
12.1 Exemplo de QM param´etrica para calcular MRU. . . . . . . . . . . . . . . . . . . . . 181
12.2 Exemplo de QM param´etrica para criar uma matriz. . . . . . . . . . . . . . . . . . . 183
12.3 Quest˜ao param´etrica com equa¸ao e figura. . . . . . . . . . . . . . . . . . . . . . . . . 186
12.4 QM param´etrica com grafo e figura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
12.5 M´etodo para desenhar matriz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
12.6 Quest˜ao param´etrica com matriz Parte 1: Descri¸ao de quest˜ao. . . . . . . . . . . . 191
12.7 Quest˜ao param´etrica com matriz Parte 2: Bloco de odigo em Python. . . . . . . . 192
Francisco de Assis Zampirolli MCTest xiv
Cap´ıtulo 1
Introdu¸ao
Conte´udo
1.1 Apresenta¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 etodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Breve hist´orico do MCTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 MCTest no TSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Vers˜oes do MCTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 MCTest nos processos seletivos e exames de disciplinas do TSI . . . . . 6
1.2.4 MCTest na Escola Preparat´oria . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Direitos autorais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Direitos autorais do software . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Direitos autorais das quest˜oes dispon´ıveis no BD . . . . . . . . . . . . . 8
1.4 Instalando o MCTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Organiza¸ao do livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1 Apresenta¸ao
A avalia¸ao dos estudantes ´e uma atividade crucial para o trabalho de um professor, ao
permitir avaliar de maneira precisa o desempenho dos estudantes ao longo do curso, fornecendo
feedback importante para o seu desenvolvimento acadˆemico. Al´em disso, a avalia¸ao tamb´em ´e um
meio importante para aprimorar a pr´atica educativa, permitindo que os professores identifiquem
pontos fortes e fracos de sua metodologia e aprimorem sua abordagem pedag´ogica para proporcionar
um melhor aprendizado aos estudantes.
1
CAP
´
ITULO 1. INTRODUC¸
˜
AO
Avaliar in´umeros estudantes individualizadamente ´e uma tarefa desafiadora para professores
em todos os n´ıveis de ensino, especialmente em disciplinas que exigem habilidades e competˆencias
espec´ıficas. Esse desafio ´e ainda maior em exames que envolvem exerc´ıcios de programa¸ao (EP),
uma vez que exigem uma avalia¸ao minuciosa dos processos de resolu¸ao de problemas, al´em da
compreens˜ao do odigo e da ogica utilizados pelos estudantes. Nesse sentido, ´e fundamental que os
professores tenham acesso a ferramentas e ecnicas que possam auxili´a-los nessa tarefa, como sistemas
de avalia¸ao automatizados e a utiliza¸ao de exerc´ıcios parametrizados. A ado¸ao dessas ferramentas
permite uma avalia¸ao mais eficiente das habilidades dos estudantes, garantindo que eles tenham a
oportunidade de demonstrar seu conhecimento e habilidades adequadamente.
1.1.1 Objetivo
Este livro visa disponibilizar uma solu¸ao abrangente e eficaz para a avalia¸ao de estudantes.
A abordagem colaborativa adotada permite que os professores reutilizem bancos de quest˜oes a
utilizados por outros colegas que lecionam na mesma disciplina, economizando tempo e esfor¸co na
cria¸ao de avalia¸oes personalizadas.
Essa metodologia pode ser aplicada tanto em exames unificados em arias turmas com milhares
de estudantes, quanto em disciplinas com turmas menores ministradas por um ´unico professor.
1.1.2 M´etodo
Para ajudar professores a avaliar os estudantes, este livro apresenta o MCTest, um sistema
de odigo aberto que permite a elabora¸ao e corre¸ao de exames com quest˜oes de m´ultipla escolha
(QMs) ou dissertativas (QTs), incluindo EP. Esse sistema oferece quest˜oes parametrizadas e exames
individualizados, que podem ser utilizados por arias turmas simultaneamente. O MCTest foi inici-
almente desenvolvido para corrigir exames em processos seletivos para um curso de especializa¸ao na
Universidade Federal do ABC (UFABC) em 2012, mas evoluiu significativamente para uma vers˜ao
inteiramente web.
O MCTest pode ser integrado a Ambientes Virtuais de Aprendizagem (AVAs), como o Moodle,
o qual ´e uma plataforma digital que oferece uma variedade de recursos e ferramentas para melhorar
o processo de ensino e aprendizagem. Os AVAs podem ser usados como um complemento ou suporte
`as aulas presenciais, ou como uma op¸ao para o ensino a distˆancia (EaD). Eles oferecem um espa¸co
virtual onde estudantes e professores podem interagir, acessar materiais did´aticos, realizar atividades,
participar de oruns de discuss˜ao e avalia¸oes. Esses ambientes proporcionam aos estudantes maior
flexibilidade para acessar o conte´udo e realizar suas tarefas em hor´arios mais convenientes, o que
tamb´em permite uma maior personaliza¸ao do processo de aprendizagem.
Assim, este livro ensina como criar exames individualizados, com quest˜oes parametrizadas,
intercalando textos em L
A
T
E
X e odigos em Python, e corre¸ao autom´atica. Essas quest˜oes podem
incluir EPs utilizando o plugin VPL (Virtual Programming Lab) no Moodle. No entanto, antes de
elaborar esses EPs, ´e importante discutir como navegar pelo sistema utilizando um dos seus trˆes
tipos de usu´arios: administrador, coordenador de disciplina e professor. Mesmo um professor sem
Francisco de Assis Zampirolli MCTest 2
1.2. BREVE HIST
´
ORICO DO MCTEST
habilidade de programa¸ao pode utilizar o MCTest para criar exames com quest˜oes est´aticas, onde a
´unica varia¸ao ´e o sorteio das quest˜oes e das alternativas. Cada tipo de usu´ario possui um conjunto
de funcionalidades para criar e alterar as diversas entidades do sistema, incluindo Instituto, Curso,
Disciplina, opico, Quest˜ao, Turma, Professor, Estudante e Exame.
O MCTest a foi implantado com sucesso na UFABC e serve como plataforma para os pro-
fessores e gestores da institui¸ao. O leitor pode examinar a implanta¸ao deste sistema em mc-
test.ufabc.edu.br para entender melhor como o sistema funciona e como pode ser utilizado para
aprimorar a avalia¸ao de habilidades dos estudantes.
1.1.3 Resultados
O livro apresenta os resultados de dezenas de experimentos realizados ao longo dos ´ultimos 12
anos em disciplinas na UFABC. Os experimentos foram realizados em disciplinas como Bases Com-
putacionais da Ciˆencia, Processamento da Informa¸ao, Programa¸ao Estruturada, Processamento
Digital de Imagens e Vis˜ao Computacional, tanto nos Bacharelados em Ciˆencia e Tecnologia (BCT)
e Ciˆencia da Computa¸ao (BCC), quanto na os-gradua¸ao em Ciˆencia da Computa¸ao. Al´em disso,
o livro tamb´em relata um experimento realizado na disciplina de Fun¸oes de Uma Vari´avel (C´alculo)
no BCT, utilizando a biblioteca sympy.org para quest˜oes alg´ebricas.
Este livro apresenta os resultados de experimentos conduzidos em trˆes modalidades: h´ıbrida,
totalmente remota e totalmente presencial. Foram selecionados os melhores resultados obtidos por
meio de artigos e registros de software, os quais est˜ao dispon´ıveis para consulta em vision.ufabc.edu.br.
Os experimentos demonstram a efic´acia do etodo avaliativo utilizando o MCTest na avalia¸ao de
disciplinas de computa¸ao, bem como em processos seletivos gerais.
Com o sistema MCTest apresentado neste livro, os professores em `a disposi¸ao uma ferra-
menta poderosa para aprimorar a avalia¸ao de habilidades e competˆencias dos estudantes em pro-
grama¸ao. Ao utilizar o MCTest, os professores podem minimizar o esfor¸co de criar e corrigir exames
e EPs, permitindo que se dediquem a atividades de ensino menos repetitivas e mais significativas.
Al´em disso, o MCTest oferece uma avalia¸ao mais eficiente, tornando o processo de avalia¸ao
menos suscet´ıvel a erros humanos e mais preciso. Isso pode proporcionar uma experiˆencia de apren-
dizado mais satisfat´oria para os estudantes, que se sentir˜ao mais seguros e motivados a progredir em
suas habilidades.
1.2 Breve hist´orico do MCTest
Nesta se¸ao, ser´a apresentado um breve hist´orico do MCTest. Essa ferramenta surgiu como
resposta `a necessidade do curso de Especializa¸ao em Tecnologias e Sistemas de Informa¸ao (TSI)
Lato Sensu da UFABC. Este curso foi pioneiramente oferecido pela universidade em 2010 (TSI-1).
Desde a sua segunda edi¸ao (TSI-2), em 2012, o MCTest tem sido amplamente utilizado em diversos
processos seletivos e exames de disciplinas, desempenhando um papel fundamental tamem na Escola
Preparat´oria da UFABC (EPUFABC).
Francisco de Assis Zampirolli MCTest 3
CAP
´
ITULO 1. INTRODUC¸
˜
AO
Ao longo deste livro, os experimentos realizados com o MCTest ser˜ao descritos em detalhes,
abrangendo diversos aspectos de seu uso e aplica¸ao. Caso haja interesse em conhecer mais sobre o
uso do MCTest em processos seletivos, exames de disciplinas ou na Escola Preparat´oria da UFABC,
basta consultar os cap´ıtulos espec´ıficos dedicados a esses temas.
1.2.1 MCTest no TSI
O curso TSI-1 estabeleceu uma parceria com o programa Universidade Aberta do Brasil,
vinculado ao Minist´erio da Educa¸ao (UAB/MEC), e oferecido na modalidade de ensino a distˆancia
(EaD), com exames presenciais correspondendo a mais de 50% da nota de aprovao do estudante.
Em 2010, houve 1078 candidatos para as 200 vagas dispon´ıveis em quatro polos do estado de ao
Paulo, com 16 tutores no total.
A segunda edi¸ao do curso (TSI-2) iniciou em 2012, com 1171 inscritos distribu´ıdos em 4 polos,
contendo 50 estudantes em cada polo. No entanto, apenas 674 candidatos conclu´ıram o processo
seletivo (ZAMPIROLLI; QUILICI-GONZALEZ; NEVES, 2013). Nesta edi¸ao, foi desenvolvida a
primeira vers˜ao do MCTest, como ser´a detalhada na pr´oxima se¸ao.
Na terceira oferta, em 2014 (TSI-3), foram 689 candidatos para 6 polos, com 300 estudantes
matriculados. No in´ıcio, houve 11 tutores, por´em, na fase do TCC, em 2015, o n´umero total de
tutores aumentou para 16.
A quarta edi¸ao do curso (TSI-4) ocorreu em 2017, por´em sem as bolsas UAB para professores
e tutores. Como resultado, foram oferecidas apenas duas turmas, nos polos da UFABC em Santo
Andr´e (SA) e ao Bernardo do Campo (SBC), com 25 estudantes em cada polo e sem a presen¸ca
de tutores. Apesar disso, a demanda permaneceu alta, com 863 inscritos para apenas 50 vagas
dispon´ıveis nessa edi¸ao.
At´e a quarta edi¸ao do TSI, a parte administrativa do curso era conduzida pela Pr´o-Reitoria
de Extens˜ao. Durante a fase de transi¸ao dos cursos de especializa¸ao para a Pr´o-Reitoria de os-
Gradua¸ao, houve um intervalo maior entre as edi¸oes do curso, que foi agravado pela pandemia
de COVID-19. Como resultado, somente no segundo semestre de 2022 foi poss´ıvel iniciar o TSI-5,
tamb´em sem as bolsas UAB, com apenas 25 estudantes em cada polo da UFABC em SA e SBC.
Nessa edi¸ao, talvez devido `a pandemia, apenas 63 candidatos participaram do processo seletivo, em
contraste com a edi¸ao anterior, que teve uma m´edia de 17,26 candidatos por vaga.
No in´ıcio de 2023, deu-se in´ıcio `a sexta edi¸ao do TSI (TSI-6), que agora conta com o retorno
das bolsas UAB. Essa edi¸ao est´a sendo conduzida em paralelo com a TSI-5 e conta com a colabora¸ao
de 7 tutores. Ao todo, foram registrados 565 candidatos para os 6 polos do estado de ao Paulo,
resultando em uma m´edia de 35 estudantes por polo.
1.2.2 Vers˜oes do MCTest
O MCTest ´e um projeto que evoluiu ao longo do tempo, e isso pode ser visto nas diferentes
vers˜oes registradas no Instituto Nacional de Propriedade Intelectual (INPI). Cada vers˜ao registra
uma evolu¸ao do projeto em termos de tecnologia, metodologia e objetivos.
Francisco de Assis Zampirolli MCTest 4
1.2. BREVE HIST
´
ORICO DO MCTEST
A primeira vers˜ao do MCTest (MCTest-1) foi registrada no INPI com o n´umero de registro
BR 51 2013 001231 7. Essa vers˜ao foi desenvolvida em Matlab para permitir a corre¸ao autom´atica
dos exames gerados em Word ou BROffice. O MCTest-1 foi utilizado nos processos seletivos do TSI
de 2012 at´e 2017, contribuindo significativamente para a avalia¸ao das competˆencias cognitivas dos
candidatos.
Foi desenvolvida uma vers˜ao do MCTest denominada MCTest-2 em colabora¸ao com um es-
tudante de Inicia¸ao Cient´ıfica, e essa vers˜ao foi devidamente registrada no INPI sob o n´umero de
registro BR 51 2015 001444 7. Essa vers˜ao espec´ıfica, disponibilizada para dispositivos Android, pos-
sibilitou a corre¸ao autom´atica dos exames gerados em Word ou BROffice (CHINA; ZAMPIROLLI,
2014; ZAMPIROLLI et al., 2015; CHINA et al., 2016).
A vers˜ao MCTest-3 foi desenvolvida em Python e registrada no INPI com o umero de registro
BR 51 2015 001445 5. Assim como as vers˜oes anteriores, essa vers˜ao tamb´em permitia a corre¸ao
autom´atica de exames gerados em Word/BROffice.
a a vers˜ao MCTest-4, registrada no INPI com o n´umero de registro BR 51 2016 001344 3,
foi desenvolvida em Python e tamb´em permitia a corre¸ao autom´atica dos exames. No entanto, os
exames foram digitalizados e enviados por FTP para o servidor vision.ufabc.edu.br, com os exames
gerados pela vers˜ao MCTest-4.G (ZAMPIROLLI; BATISTA; QUILICI-GONZALEZ, 2016). Essa
vers˜ao representou um avan¸co significativo em rela¸ao `as anteriores, ao permitir o envio remoto
dos exames digitalizados e a corre¸ao autom´atica, simplificando o processo de avalia¸ao dos candida-
tos. Essa vers˜ao est´a disponibilizada em github.com/fzampirolli/mctest4 (ZAMPIROLLI; BATISTA;
QUILICI-GONZALEZ, 2016).
Posteriormente, entre maio e agosto de 2018, foi desenvolvida e lan¸cada a vers˜ao atual do
MCTest, a MCTest-5.2. Essa vers˜ao apresentou grandes mudan¸cas, sendo disponibilizada em aginas
web e desenvolvida em Python com IDE Django, permitindo a gera¸ao e corre¸ao autom´atica de
exames. A MCTest-5.2 est´a dispon´ıvel em github.com/fzampirolli/mctest, com os exames gerados
em L
A
T
E
X e usando o banco de dados MySQL. Desde o seu lan¸camento, essa nova vers˜ao gerou
diversas publica¸oes, a partir de 2018, que podem ser acessadas atrav´es do site vision.ufabc.edu.br.
A grande contribui¸ao do MCTest ao estado da arte em exames avaliativos e formativos est´a
na possibilidade de criar quest˜oes parametrizadas, intercalando descri¸oes em L
A
T
E
X com odigos em
Python, dispon´ıvel a partir da vers˜ao MCTest-4.G. Os exames gerados com essas quest˜oes podem
ter a corre¸ao autom´atica com:
1. Exames digitalizados e enviados para o MCTest;
2. Se forem quest˜oes de exerc´ıcios de programa¸ao (EPs), com respostas dadas em odigo em
alguma linguagem de programa¸ao, o MCTest gera um arquivo com os casos de teste e outro
com a varia¸ao de cada estudante. Esses arquivos devem ser inseridos em atividades VPL no
Moodle para a corre¸ao autom´atica;
3. Outra possibilidade ´e o MCTest exportar um banco de quest˜oes em formato Aiken ou XML,
que podem ser importados pelo Moodle para criar exames.
Francisco de Assis Zampirolli MCTest 5
CAP
´
ITULO 1. INTRODUC¸
˜
AO
O Moodle tamb´em aceita quest˜oes param´etricas, mas ao limitadas ao conjunto de fun¸oes
do PHP, como relatado no artigo de Zampirolli et al. (2021b).
1.2.3 MCTest nos processos seletivos e exames de disciplinas do TSI
Desde 2012, todos os processos seletivos do TSI tˆem sido realizados com o uso do MCTest. At´e
a vers˜ao MCTest-4, os exames eram criados em editores de texto, como Word ou BROffice. A partir
da vers˜ao MCTest-4G, no entanto, os exames come¸caram a ser criados diretamente pelo sistema.
Al´em disso, os professores da disciplina de Processamento de Informa¸ao (CS1) do Bacharelado
em Ciˆencia e Tecnologia da UFABC, na modalidade semipresencial, viram a oportunidade de utilizar
o sistema em quest˜oes contendo EP, como relatado no artigo de Zampirolli et al. (2018). Com o
passar do tempo, arias outras turmas e professores tamb´em come¸caram a utilizar o sistema e a
sugerir melhorias.
Desde 2012, todas as 13 disciplinas do TSI tiveram seus exames presenciais corrigidos com o
aux´ılio do MCTest. A partir de 2017, os exames tamb´em passaram a ser gerados pelo sistema, sendo
reaproveitados em cada nova oferta, com pequenas modifica¸oes. Essa mudan¸ca representou uma sig-
nificativa melhoria na eficiˆencia e rapidez do processo de avalia¸ao, al´em de permitir a personaliza¸ao
e adapta¸ao dos exames para cada nova oferta.
1.2.4 MCTest na Escola Preparat´oria
A UFABC oferece gratuitamente `a comunidade da regi˜ao do ABC um curso preparat´orio para
vestibulares chamado Escola Preparat´oria da UFABC (EPUFABC). Desde 2017, o MCTest tem sido
um importante aliado no processo seletivo dos candidatos da EPUFABC. Esses processos atraem
milhares de candidatos para as cerca de 300 vagas dispon´ıveis anualmente.
Para viabilizar esse processo, foi empregado o MCTest para gerar o quadro de respostas (QR)
dos candidatos, enquanto as QMs foram impressas separadamente. O uso do MCTest mostrou-
se fundamental para agilizar e simplificar o processo seletivo, permitindo a corre¸ao autom´atica dos
exames e a apida gera¸ao do resultado. Al´em disso, a precis˜ao e confiabilidade do sistema garantiram
uma avalia¸ao sem erros dos candidatos, contribuindo para a excelˆencia acadˆemica da UFABC e o
sucesso dos estudantes matriculados na EPUFABC.
Essa parceria permitiu o desenvolvimento de mais um sistema (ENEM Interativo) e a pu-
blica¸ao de dois artigos, os quais ser˜ao resumidos a seguir e detalhados na Parte IV de experimentos.
ENEM Interativo
Em colabora¸ao com a EPUFABC, foi desenvolvido um sistema interativo denominado ENEM
interativo, permitindo que os estudantes utilizem exames antigos do ENEM e os microdados dispo-
nibilizados pelo INEP para estudo. Nesse sistema, os exames em formato PDF ao convertidos para
HTML, e bot˜oes de resposta ao inclu´ıdos para cada quest˜ao. Ao ermino de cada exame, o bot˜ao de
estat´ısticas abre uma nova agina contendo dados do gabarito, respostas dos estudantes, habilidades
(valores fornecidos pelo INEP) e gr´aficos.
Francisco de Assis Zampirolli MCTest 6
1.3. DIREITOS AUTORAIS
Esses gr´aficos mostram a Curva Caracter´ıstica do Item (CCI) da Teoria de Resposta ao Item
(TRI) (BIRNBAUM, 1968), sendo calculada a partir dos parˆametros da amostra aleat´oria de 10.000
estudantes, incluindo a discrimina¸ao (a), habilidade (b) e chute (c). Os valores m´edios e o desvio
padr˜ao da amostra tamb´em ao calculados, permitindo uma melhor compreens˜ao da distribui¸ao dos
resultados.
Outro gr´afico gerado ´e o BoxPlot (JW, 1977), juntamente com o ViolinPlot (HINTZE; NEL-
SON, 1998), para visualizar as frequˆencias de acertos (valor 1) e erros (valor 0) de forma mais clara
e precisa.
´
E importante ressaltar que esses gr´aficos est˜ao dispon´ıveis apenas para exames com respos-
tas de mais de 10.000 estudantes. Essa ferramenta tem sido uma contribui¸ao para o processo de
prepara¸ao dos estudantes para o ENEM, fornecendo informa¸oes valiosas sobre o desempenho dos
estudantes e as tendˆencias de cada quest˜ao ao longo do tempo (ZAMPIROLLI et al., 2021b).
Compara¸oes de trˆes m´etodos de sele¸ao
Foi realizado um estudo comparativo entre trˆes m´etodos de sele¸ao de candidatos para a
EPUFABC: 1) o uso do MCTest com exames presenciais, aplicando a Teoria Cl´assica ao Item (TCI);
2) o uso do Moodle durante a pandemia de COVID-19, com a realiza¸ao dos exames a distˆancia,
tamb´em utilizando a TCI; e 3) o uso do MCTest com exames presenciais, empregando a TRI.
Os resultados obtidos indicaram que, ao adotar a TRI, as chances de empate entre candidatos
foram consideravelmente reduzidas. Adicionalmente, foi constatado que a correla¸ao entre as classi-
fica¸oes obtidas pelos etodos TCI e TRI ´e alta, evidenciando coerˆencia entre os dois etodos de
pontua¸ao (ZAMPIROLLI et al., 2021a).
1.3 Direitos autorais
Nesta se¸ao, ser˜ao abordados os direitos autorais do software e das quest˜oes criadas pelos
professores e disponibilizadas no banco de dados do MCTest.
1.3.1 Direitos autorais do software
At´e a primeira edi¸ao deste livro, o MCTest foi desenvolvido integralmente pelo Prof. Fran-
cisco de Assis Zampirolli, da Universidade Federal do ABC (UFABC), visando atender `as demandas
da institui¸ao na avalia¸ao de in´umeros estudantes e candidatos de processos seletivos. O sistema
contou com a valiosa colabora¸ao de colegas da UFABC, que compartilharam suas necessidades em
rela¸ao `as avalia¸oes. No entanto, ´e crucial ressaltar que o MCTest ao ´e um produto comercial e,
infelizmente, ao segue rigorosamente o ciclo de vida de desenvolvimento de software.
Trata-se de um sistema constru´ıdo inspirado no modelo de prototipagem de Engenharia de
Software. Para vir a se tornar um produto comercial, seria necess´ario submetˆe-lo a uma engenharia
reversa e aprimor´a-lo, sobretudo no que concerne `a navegabilidade entre as telas e `a adi¸ao de mais
funcionalidades de gest˜ao de processos.
Francisco de Assis Zampirolli MCTest 7
CAP
´
ITULO 1. INTRODUC¸
˜
AO
Mesmo com as limita¸oes mencionadas anteriormente, o MCTest est´a em produ¸ao na UFABC
e ´e utilizado por professores e gestores para avaliar milhares de estudantes e candidatos, reduzindo
significativamente a parte repetitiva dos processos de avalia¸ao.
O MCTest possui odigo aberto e est´a dispon´ıvel no GitHub, podendo ser usado e modificado
sob a licen¸ca AGNU. Isso implica que todos em a liberdade de utilizar o sistema. Para manter o
MCTest atualizado, melhorias feitas por terceiros e implementadas em seus servidores tamb´em devem
ser compartilhadas com o p´ublico. Essa licen¸ca pode ser encontrada na implanta¸ao na UFABC em
mctest.ufabc.edu.br/license e tamb´em est´a apresentada a seguir:
Licen¸ca:
Copyright (C) 2018-2023 Francisco de Assis Zampirolli from Federal University of ABC and
individual contributors. All rights reserved. This file is part of MCTest 5.2. Languages:
Python, Django, and many libraries described at github.com/fzampirolli/mctest.
You should cite some references included in vision.ufabc.edu.br in any publication about
it.
MCTest is free software: you can redistribute it and/or modify it under the terms of
the GNU Affero General Public License (gnu.org/licenses/agpl-3.0.txt) as published by the
Free Software Foundation, either version 3 of the License or (at your option) any later version.
MCTest is distributed in the hope that it will be useful, but WITHOUT ANY WAR-
RANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
1.3.2 Direitos autorais das quest˜oes dispon´ıveis no BD
Outro ponto muito importante a respeito dos direitos autorais refere-se `as quest˜oes elaboradas
no MCTest e armazenadas em seu banco de dados (BD). A filosofia do MCTest ´e trabalhar colaborati-
vamente para produzir e utilizar material did´atico em avalia¸oes. Dessa forma, as quest˜oes elaboradas
por um professor em uma disciplina da UFABC est˜ao dispon´ıveis para os demais professores desta
disciplina, para uso exclusivo em suas avalia¸oes nesta universidade.
Cada institui¸ao pode definir seus pr´oprios crit´erios de direito autoral para o conte´udo dispo-
nibilizado no BD do MCTest.
´
E importante ressaltar que o direito autoral do software apresentado na
se¸ao anterior ao cobre essa parte. Portanto, cabe a cada institui¸ao definir seus pr´oprios crit´erios
em suas implanta¸oes do MCTest.
A seguir, ser´a apresentado o que foi definido para os professores da UFABC que optaram por
utilizar o sistema na implanta¸ao disponibilizada em mctest.ufabc.edu.br/According.
Francisco de Assis Zampirolli MCTest 8
1.4. INSTALANDO O MCTEST
De Acordo:
O MCTest (dispon´ıvel gratuitamente no GitHub) foi implantado no servidor da UFABC:
mctest.ufabc.edu.br.
Na UFABC, o MCTest ´e um servi¸co colaborativo para gera¸ao e corre¸ao autom´atica
de atividades de forma¸ao (como Listas de Exerc´ıcios) e de avalia¸ao (como Testes ou Exames).
Esse servi¸co est´a dispon´ıvel gratuitamente para todos os docentes da UFABC.
Para poder utilizar o MCTest, o professor deve inscrever-se na plataforma e ser cadas-
trado em alguma disciplina pelo seu coordenador.
Todo o material intelectual (aulas, v´ıdeos, quest˜oes, etc.) dispon´ıvel neste site est´a
protegido pelo direito autoral dos seus respectivos autores e, em ´ultima instˆancia, ´e proprie-
dade da UFABC. Os autores propriet´arios do material disponibilizado no site concordam em
liberar o seu uso sem restri¸oes pelos professores da institui¸ao a qual est´a vinculado somente
no ˆambito das disciplinas e cursos desta institui¸ao. Al´em disso, quando me inscrevo neste
servi¸co, nesta institui¸ao, CONCORDO que:
Posso utilizar livremente em meus exames todas as quest˜oes dispon´ıveis a cadastradas
na disciplina;
ao posso publicar quest˜oes criadas por outros professores em quaisquer outras m´ıdias,
como, por exemplo, livros e artigos;
Todas as novas quest˜oes que eu criar podem ser reaproveitadas em exames elaborados
por outros professores da mesma disciplina, sem pr´evio aviso;
o posso mudar as quest˜oes dos outros professores SOMENTE SE HOUVER ALGUM
ERRO. Por´em, sem alterar a autoria da quest˜ao.
1.4 Instalando o MCTest
O MCTest pode ser instalado localmente no computador pessoal utilizando a aquina virtual
VirtualBox. Em seguida, ´e necess´ario baixar uma das seguintes vers˜oes do Linux: Ubuntu 20.04 ou
22.04, ou ainda a distribui¸ao Mint 21 Mate. Essas distribui¸oes a foram testadas, mas o MCTest
pode funcionar em outras tamb´em.
Ap´os instalar o Linux na aquina virtual ou utiliz´a-lo diretamente em uma instala¸ao Linux,
sem a aquina virtual, basta fazer o download do arquivo setup-all.sh, dispon´ıvel na pasta
mctest do GitHub, e execut´a-lo em um terminal com privil´egios de superusu´ario (sudo su). Em
Francisco de Assis Zampirolli MCTest 9
CAP
´
ITULO 1. INTRODUC¸
˜
AO
seguida, execute o comando source _setup-all.sh. Com isso, ap´os aproximadamente 10 minutos,
o MCTest ser´a aberto em uma aba do navegador, instalando um banco de dados com apenas trˆes
usu´arios de teste, dispon´ıvel no BD mctest.sql. Se o leitor quiser instalar a vers˜ao com todos os
exemplos utilizados neste livro, basta instalar o BD mctestLivro.sql. Para mais detalhes, consulte o
conte´udo do arquivo setup-all.sh.
1.5 Organiza¸c˜ao do livro
Este livro foi elaborado para fornecer um guia completo e abrangente sobre o MCTest, uma
plataforma de avalia¸ao e gerenciamento de aprendizado. O conte´udo est´a organizado em quatro
partes, cada uma focada em um aspecto diferente do MCTest, desde os fundamentos at´e experimentos
e aplica¸oes pr´aticas, conforme apresentado na Figura 1.1 e resumido a seguir:
Figura 1.1: Organiza¸ao do livro.
Parte I Fundamentos do MCTest: apresenta a introdu¸ao ao MCTest, seus componentes asicos
e funcionalidades essenciais. Esta parte inclui o Cap´ıtulo 2 Vis˜ao geral do MCTest e o
Cap´ıtulo 3 Recursos avan¸cados, que abordam a vis˜ao geral do sistema, navega¸ao, usu´arios e
os m´etodos asicos de opera¸ao (CRUD Create, Read, Update, Delete). As se¸oes ao dedica-
das `a manuten¸ao de diferentes ´areas do sistema por usu´arios administradores, coordenadores
e professores.
Parte II Quest˜oes no MCTest: trata de diferentes tipos de quest˜oes dispon´ıveis no MCTest,
como quest˜oes est´aticas e param´etricas. Os Cap´ıtulos 4 Quest˜oes est´aticas e 5 Quest˜oes
Francisco de Assis Zampirolli MCTest 10
1.5. ORGANIZAC¸
˜
AO DO LIVRO
param´etricas discutem quest˜oes de m´ultipla escolha (QMs), quest˜oes dissertativas ou de texto
(QTs) e QTs com odigo.
Parte III Exames no MCTest: aborda o processo de cria¸ao e gerenciamento de exames no
MCTest, com uma vis˜ao geral no Cap´ıtulo 6 Vis˜ao geral dos exames. Os Cap´ıtulos 7
Exames com Quadro de Respostas (QR), 8 Exames com QR+QM e/ou QT, 9 Varia¸oes de
exames com QM+QT para o Moodle e 10 Exames com MCTest+Moodle+VPL exploram o
quadro de respostas (QR) e a integra¸ao com quest˜oes de m´ultipla escolha (QMs) e/ou quest˜oes
dissertativas (QTs), al´em da combina¸ao do MCTest com Moodle e VPL para exames.
Parte IV Experimentos de Uso do MCTest: apresenta estudos de caso e exemplos pr´aticos
do uso do MCTest em ambientes educacionais. Os Cap´ıtulos 11 MCTest vers˜oes 1, 2 e 3 -
Quadro de Respostas (QR), 12 MCTest vers˜oes 4, 4.G e 5 e 13 MCTest+Moodle+VPL
apresentam diferentes cen´arios envolvendo o quadro de respostas (QR), quest˜oes de m´ultipla
escolha (QMs) e/ou quest˜oes dissertativas (QTs) e a integra¸ao do MCTest com Moodle e VPL.
O livro ´e finalizado com o Cap´ıtulo 14 Conclus˜oes, que resume as principais ideias apresen-
tadas ao longo do texto e oferece orienta¸oes para futuras pesquisas e desenvolvimentos do MCTest
pela comunidade, visto que se trata de um sistema de odigo aberto. Esse cap´ıtulo ´e especialmente
valioso para aqueles que desejam se aprofundar no tema e contribuir para o desenvolvimento cont´ınuo
do MCTest, seja por meio de pesquisas adicionais ou pela implementa¸ao de novas funcionalidades.
Leitores interessados em utilizar o sistema exclusivamente para a elabora¸ao e avalia¸ao de exames
que contenham apenas os QRs (as QMs ser˜ao apresentadas separadamente) devem seguir os cap´ıtulos
indicados pelas setas tracejadas na Figura 1.1.
Francisco de Assis Zampirolli MCTest 11
CAP
´
ITULO 1. INTRODUC¸
˜
AO
Francisco de Assis Zampirolli MCTest 12
Parte I
Fundamentos do MCTest
Conte´udo
2 Vis˜ao geral do MCTest 15
3 Recursos avan¸cados 39
13
Francisco de Assis Zampirolli MCTest 14
Cap´ıtulo 2
Vis˜ao geral do MCTest
Conte´udo
2.1 Navega¸ao geral e usu´arios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Criar entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Instituto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Disciplina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.4 Turma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.5 opico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
O MCTest ´e um sistema, gratuito, de odigo aberto e em desenvolvimento, cujo objetivo ´e
fornecer e gerenciar um banco de dados para avalia¸oes de estudantes em um sistema de ensino. O
foco principal do sistema ´e fornecer quest˜oes que possam ser utilizadas em atividades de ensino, al´em
de oferecer gera¸ao e corre¸ao autom´atica de atividades e exames. Com o MCTest, os educadores
ter˜ao acesso a uma ferramenta poderosa para avaliar o progresso dos estudantes, aprimorar o processo
de ensino e fornecer feedback de forma apida.
O MCTest representa uma importante contribui¸ao ao estado da arte em Tecnologia da In-
forma¸ao e Comunica¸ao (TIC) ao fornecer etodos para a constru¸ao e corre¸ao automatizada de
quest˜oes parametrizadas de m´ultipla escolha (QMs) e dissertativas (QTs). O sistema utiliza diferentes
bibliotecas da linguagem de programa¸ao Python para calcular parˆametros na descri¸ao e nas alter-
nativas das quest˜oes de forma autom´atica. Para mais detalhes, ´e poss´ıvel consultar as publica¸oes
dispon´ıveis em vision.ufabc.edu.br, algumas delas tamb´em ser˜ao apresentadas nos cap´ıtulos da Parte
IV. Al´em disso, o MCTest tamb´em suporta QTs que podem incluir exerc´ıcios de programa¸ao (EP)
ou qualquer outro tipo de resposta.
O MCTest possui um ambiente de produ¸ao dispon´ıvel em mctest.ufabc.edu.br, atualmente
utilizado por diversos professores e setores na Universidade Federal do ABC (UFABC). Por exemplo,
15
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
a Escola Preparat´oria (EPUFABC) utiliza o sistema no processo seletivo anual de aproximadamente
3000 candidatos anualmente. Isso demonstra a efic´acia e a confiabilidade do MCTest como uma
ferramenta de avalia¸ao em larga escala.
O MCTest est´a dispon´ıvel gratuitamente no GitHub, permitindo que outras institui¸oes pos-
sam copiar, personalizar e instalar o sistema em seus pr´oprios servidores de forma livre e flex´ıvel.
Al´em disso, a diversas possibilidades de melhoria e trabalhos futuros para o MCTest, as quais podem
ser exploradas seguindo a filosofia de odigo aberto, como definido no Copyright © 2018–2023 do
sistema. Para mais informa¸oes sobre as possibilidades de melhoria do MCTest, ´e poss´ıvel consultar
o link mctest.ufabc.edu.br/readme.
2.1 Navega¸ao geral e usu´arios
A navega¸ao geral do MCTest visa possibilitar a cria¸ao e manuten¸ao das entidades principais
do sistema, que incluem instituto, curso, disciplina, turma, exame, opico e quest˜ao. Os usu´arios do
sistema ao categorizados em trˆes perfis: professor, coordenador e administrador. No entanto, na
Figura 2.1, quando nenhum usu´ario est´a logado no sistema, um usu´ario da web pode visualizar os
conte´udos p´ublicos de institutos, cursos e disciplinas, bem como se inscrever ou entrar no sistema.
Para uma compara¸ao das funcionalidades de cada perfil de usu´ario, consulte tamb´em a Figura 2.2.
Observao:
As figuras apresentadas neste livro correspondem `a implanta¸ao do MCTest em uma aquina
local, utilizando um banco de dados de exemplo dispon´ıvel no GitHub, com um n´umero limitado
de entidades cadastradas. Para ver um exemplo com um banco de dados mais completo, visite o
site mctest.ufabc.edu.br. Para adiantar, o leitor pode instalar uma aquina virtual utilizando
o VirtualBox e, em seguida, fazer o download de um sistema operacional suportado, conforme
explicado no arquivo setup-all.sh. Basta seguir as instru¸oes fornecidas nesse arquivo para
concluir a instala¸ao, incluindo a instala¸ao das bibliotecas necess´arias.
´
E importante notar que
o processo de instala¸ao do pacote L
A
T
E
X pode levar mais de 10 minutos. Para mais detalhes,
ver Se¸ao 1.4 Instalando o MCTest.
Atualmente, al´em do administrador, o sistema est´a dispon´ıvel apenas para usu´arios do tipo
professor, que podem tamb´em ser coordenadores de disciplina com permiss˜ao para incluir professores
e opicos. O perfil de coordenador ´e adicionado pelo administrador do sistema ao associ´a-lo a uma
disciplina espec´ıfica. Cabe ao administrador tamb´em a responsabilidade de manter a agina do
Django.
No MCTest, cada tipo de usu´ario possui acesso restrito a um conjunto espec´ıfico de entidades,
como ilustrado na Figura 2.2.
´
E importante ressaltar que os itens (c) e (d) ao idˆenticos para profes-
sores e coordenadores. Por exemplo, ambos podem visualizar todas as turmas, opicos e quest˜oes das
disciplinas em que est˜ao inscritos, mas somente o coordenador pode realizar altera¸oes em opicos de
disciplinas que coordena. Al´em disso, os menus `a esquerda ao gerais para todo o conte´udo ao qual
Francisco de Assis Zampirolli MCTest 16
2.1. NAVEGAC¸
˜
AO GERAL E USU
´
ARIOS
Figura 2.1: Tela principal do MCTest.
o usu´ario tem acesso, enquanto `a direita ao apresentados apenas os conte´udos de quest˜oes, turmas
e exames que o usu´ario criou.
O MCTest tamb´em permite que um professor coordenador de disciplina adicione arios pro-
fessores a uma disciplina por um arquivo CSV, sendo automaticamente cadastrado no sistema como
Francisco de Assis Zampirolli MCTest 17
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
(a) Navega¸ao sem estar logado
(b) Navega¸ao para um usu´ario cadastrado sem perfil
(c) Navega¸ao para um usu´ario com perfil de professor
(d) Navega¸ao para um usu´ario com perfil de coordenador
(e) Navega¸ao para um usu´ario com perfil de administrador
Figura 2.2: Recorte do menu de navega¸ao principal do MCTest.
perfil de professor (esse processo ser´a exemplificado no pr´oximo cap´ıtulo). Com isso, os professores
inclu´ıdos na disciplina em acesso somente `as funcionalidades do sistema que ao relevantes ao seu
perfil.
Antes de demonstrar como criar entidades no sistema, ´e importante cadastrar-se na plata-
forma, clicando na op¸ao “Inscrever”, conforme indicado na Figura 2.2 e exemplificado na Figura
2.3.
´
E necess´ario ressaltar que somente os professores podem se inscrever neste servi¸co e devem
utilizar o e-mail institucional fornecido pela institui¸ao durante o cadastro. Por exemplo, o endere¸co
user@ufabc.edu.br ´e alido, enquanto user@aluno.ufabc.edu.br ´e inv´alido. O e-mail deve conter
a URL da institui¸ao (por exemplo, @ufabc.edu.br). Tais restri¸oes ao cruciais para garantir a va-
lidade e a seguran¸ca das informa¸oes associadas `as institui¸oes cadastradas no sistema. Finalmente,
o bot˜ao “De Acordo”, apresentado na Figura 2.3, foi detalhado na Se¸ao 1.3.2 Direitos autorais
das quest˜oes dispon´ıveis no BD.
Melhorias:
´
E importante ressaltar que ainda ao foi implementada a funcionalidade de seguran¸ca
para validar o e-mail durante o processo de inscri¸ao. Ser´a necess´ario implementar essa
funcionalidade para garantir a integridade e a seguran¸ca dos dados cadastrados no sis-
tema.
Outra melhoria importante para a seguran¸ca do sistema ´e a utiliza¸ao de um certificado
digital, que permitir´a a utiliza¸ao do protocolo HTTPS em vez de HTTP nos servidores
utilizados para a implanta¸ao do MCTest. O HTTPS criptografa a comunica¸ao entre
o navegador do usu´ario e o servidor, garantindo a confidencialidade e a integridade dos
dados transmitidos.
Francisco de Assis Zampirolli MCTest 18
2.2. CRIAR ENTIDADES
Figura 2.3: Tela para a inscri¸ao do usu´ario.
2.2 Criar entidades
O MCTest ´e um sistema que gerencia diversas entidades em um banco de dados MySQL, como
detalhado neste e no pr´oximo cap´ıtulo. Essas entidades ao criadas e relacionadas para modelar o
dom´ınio educacional com foco na avalia¸ao dos estudantes. Al´em disso, o sistema oferece funciona-
lidades para o cadastro, altera¸ao, remo¸ao e consulta dessas entidades e seus relacionamentos.
Nesta se¸ao, vocˆe encontrar´a a descri¸ao das principais entidades de neg´ocio de um sistema
educacional que tem como foco as avalia¸oes.
´
E importante ressaltar que, embora as entidades,
quest˜ao e exame sejam de extrema importˆancia no contexto do MCTest, elas ser˜ao abordadas em
cap´ıtulos espec´ıficos para uma exposi¸ao mais detalhada e aprofundada.
2.2.1 Instituto
A entidade instituto representa a institui¸ao cadastrada no sistema e cont´em atributos como
nome, odigo, logo, site, entre outros. A cria¸ao de uma entidade instituto ´e restrita ao usu´ario com
perfil de administrador.
Na Figura 2.4, ao clicar em “Criar um novo Instituto”, uma tela ser´a aberta para cadastrar
informa¸oes sobre o instituto, conforme ilustrado na Figura 2.5. Ao clicar em um instituto existente
na coluna “C´odigo” ou “Nome” da Figura 2.4, o usu´ario ser´a direcionado para uma tela para visualizar
as informa¸oes do instituto, conforme ilustrado na Figura 2.6.
´
E importante observar que nesta tela
tamb´em ´e apresentada a lista de cursos, que ser´a detalhada na pr´oxima se¸ao.
Francisco de Assis Zampirolli MCTest 19
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Ao clicar no bot˜ao “Atualizar” em um instituto existente na coluna “A¸oes” da Figura 2.4, o
usu´ario ser´a direcionado para uma nova tela para atualiz´a-lo, semelhante `a Figura 2.5. Se o usu´ario
clicar em “Apagar”, o instituto ser´a removido do banco de dados, ap´os confirma¸ao na janela de
di´alogo apresentada na Figura 2.7.
Figura 2.4: Tela para administrador atualizar, apagar ou criar um instituto.
A Figura 2.5 apresenta o recorte da tela para “Criar de um novo Instituto”, que ´e similar `a de
“Atualizar um Instituto”. Os trˆes ´ultimos campos exibidos na tela ao utilizados para contabilizar
o n´umero de exames e quest˜oes gerados e corrigidos pelo sistema desde a cria¸ao do instituto. Esses
contadores ao ´uteis para monitorar a atividade do sistema em rela¸ao a cada instituto.
´
E importante
ressaltar que apenas o administrador pode zerar esses contadores a qualquer momento, o que pode
ser necess´ario em algumas circunstˆancias, como quando ´e necess´ario reiniciar as contagens ou avaliar
a atividade recente do sistema.
Francisco de Assis Zampirolli MCTest 20
2.2. CRIAR ENTIDADES
Figura 2.5: Tela para o administrador criar um instituto.
Observao:
As telas e as oes de criar, ler, atualizar e remover (CRUD Create, Read, Update, De-
lete) para fazer a manuten¸ao do instituto ao semelhantes, em geral, `as demais entidades do
MCTest. Portanto, a partir deste ponto, ser˜ao apresentadas apenas as telas com informa¸oes
diferentes, para o usu´ario poder se concentrar nas especificidades da manuten¸ao das entidades
do sistema.
2.2.2 Curso
A cria¸ao da entidade curso ´e restrita ao usu´ario com perfil de administrador, como ilustrado
na Figura 2.8, que tamem pode atualizar ou apagar um curso existente, conforme apresentado na
coluna “A¸oes” (outros tipos de usu´arios ao em acesso a esses bot˜oes).
´
E importante destacar que
um curso pode pertencer a um ou arios institutos, permitindo assim a organiza¸ao dos cursos de
acordo com sua ´area de atua¸ao ou afinidade tem´atica.
Na UFABC, por exemplo, um instituto como o Centro de Matem´atica, Computa¸ao e Cogni¸ao
(CMCC) pode conter arios cursos. Al´em disso, um curso pode pertencer a mais de um instituto, e
existem tamb´em cursos intercentros, como o Bacharelado em Ciˆencia e Tecnologia (BCT), que pode
pertencer ao instituto PROGRAD (Pr´o-Reitoria de Gradua¸ao) e tamb´em aos trˆes centros existentes
na UFABC.
Outros exemplos de cursos na UFABC incluem a Escola Preparat´oria, que pode ser um curso
do instituto PROEC (Pr´o-Reitoria de Extens˜ao e Cultura), e o curso de idiomas, que pertence ao
instituto NETEL (N´ucleo Educacional de Tecnologias e L´ınguas), entre outros.
Essa flexibilidade na associa¸ao dos cursos aos institutos permite uma maior customiza¸ao do
sistema de avalia¸ao educacional do MCTest, conforme as necessidades espec´ıficas de cada institui¸ao
ou curso. Dessa forma, ´e poss´ıvel adaptar o sistema para atender `as demandas e particularidades de
Francisco de Assis Zampirolli MCTest 21
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.6: Tela apresentando os detalhes de um instituto.
Figura 2.7: Tela para confirmar a exclus˜ao do instituto.
diferentes ´areas de conhecimento e institui¸oes de ensino.
Ao clicar no bot˜ao “Criar um novo Curso” na Figura 2.8, o administrador ser´a direcionado
para a tela de cria¸ao de um novo curso, apresentada na Figura 2.9. Nesta tela, o administrador deve
Francisco de Assis Zampirolli MCTest 22
2.2. CRIAR ENTIDADES
Figura 2.8: Tela que apresenta a lista de cursos, na qual o administrador pode atualizar, apagar ou
criar um novo curso.
preencher as informa¸oes necess´arias sobre o curso, como o nome e odigo. Al´em disso, ´e necess´ario
selecionar o instituto ao qual o curso pertence, como exemplificado no caso do “Instituto Exemplo”.
´
E importante destacar que ´e poss´ıvel associar mais de um instituto a um curso espec´ıfico, como ser´a
exemplificado no pr´oximo cap´ıtulo. Ap´os preencher todas as informa¸oes, o administrador deve clicar
no bot˜ao “Salvar” para salvar o curso no banco de dados do sistema.
Melhorias:
´
E importante destacar que o banco de dados do sistema a suporta o relacionamento entre
um conjunto de professores/coordenadores e uma institui¸ao/curso. Portanto, ´e necess´ario
implementar as funcionalidades que permitam vincular esses profissionais `as entidades cor-
respondentes. Isso permitir´a que a gest˜ao dos professores/coordenadores seja feita de forma
mais organizada e eficiente, facilitando a aloca¸ao desses profissionais em diferentes cursos ou
institui¸oes.
Francisco de Assis Zampirolli MCTest 23
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.9: Tela para administrador criar um curso novo.
Ao clicar em um curso nas colunas “C´odigo” ou “Nome” na Figura 2.8, o usu´ario ser´a direci-
onado para uma tela detalhando as informa¸oes do curso selecionado, conforme ilustrado na Figura
2.10.
´
E importante observar que nesta tela tamb´em ao inseridas informa¸oes sobre as disciplinas do
curso selecionado, em forma de uma lista. A manuten¸ao das disciplinas ser´a abordada na pr´oxima
se¸ao.
2.2.3 Disciplina
A entidade disciplina ´e respons´avel por representar as disciplinas cadastradas no sistema,
sendo sua cria¸ao restrita ao usu´ario com perfil de administrador, que tamb´em pode atualizar ou
apagar uma disciplina existente, como ilustrado na Figura 2.11, conforme apresentado na coluna
“A¸oes” (outros tipos de usu´arios ao em acesso a esses bot˜oes de ao). No entanto, o usu´ario com
perfil de coordenador possui permiss˜ao apenas para atualizar a disciplina que coordena, como ser´a
detalhado na pr´oxima se¸ao.
A entidade disciplina ´e essencial para a organiza¸ao das turmas e opicos, o que permite criar
exames espec´ıficos para atender a arias turmas simultaneamente, facilitando a gest˜ao e a aplica¸ao
de avalia¸oes na plataforma.
A Figura 2.12 mostra a tela para criar uma disciplina. Esta tela ´e semelhante `a primeira
parte da tela de atualiza¸ao de uma disciplina. No caso de uma disciplina com muitas turmas,
foram implementadas funcionalidades na segunda parte da tela de atualiza¸ao de disciplina para o
coordenador poder cadastrar todos os professores e estudantes de arias turmas de uma o vez, atraes
da importa¸ao de arquivos no formato CSV, conforme ilustrado na Figura 2.13. Essa funcionalidade
ser´a detalhada no pr´oximo cap´ıtulo, na Se¸ao 3.2.2 Criar arias turmas com arquivo CSV.
A flexibilidade na associa¸ao de cursos permite uma personaliza¸ao maior do sistema de
avalia¸ao educacional do MCTest, conforme as necessidades espec´ıficas de cada disciplina. Al´em
disso, ´e poss´ıvel associar professores e coordenadores `a disciplina, permitindo uma organiza¸ao mais
eficiente e atribui¸ao de responsabilidades na gest˜ao da disciplina. Para selecionar mais de um
professor, basta manter a tecla Ctrl pressionada.
Francisco de Assis Zampirolli MCTest 24
2.2. CRIAR ENTIDADES
Figura 2.10: Tela apresentando os detalhes de um curso.
´
E fundamental destacar que a cria¸ao e associa¸ao de disciplinas aos cursos devem ser reali-
zadas com cautela e aten¸ao pelo coordenador, visando garantir a precis˜ao e efetividade da avalia¸ao
educacional. A associa¸ao correta de disciplinas aos respectivos cursos, institutos e professores ´e
crucial para a realiza¸ao de exames precisos e eficazes.
Ao clicar em uma disciplina nas colunas “C´odigo” ou “Nome” da Figura 2.11, ser´a aberta
uma tela detalhando as informa¸oes da disciplina, conforme ilustrado nas Figuras 2.14 e 2.15.
2.2.4 Turma
A entidade turma ´e respons´avel por representar as turmas cadastradas para cada disciplina
no MCTest. A cria¸ao, atualiza¸ao ou exclus˜ao de turmas pode ser realizada pelo administrador,
pelo coordenador ou pelo professor da disciplina, conforme apresentado na Figura 2.16. Nesta figura,
Francisco de Assis Zampirolli MCTest 25
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.11: Tela que apresenta a lista de disciplinas, na qual o administrador pode atualizar, apagar
ou criar uma nova disciplina.
o professor tem a op¸ao de criar uma nova turma ao clicar em “Criar uma nova Turma”, abrindo a
tela apresentada na Figura 2.17. Para isso, ´e necess´ario escolher uma disciplina, definir o odigo da
sala da disciplina e especificar se a turma ´e de teoria ou pr´atica.
Ap´os a cria¸ao da turma pelo professor, a tela apresentada na Figura 2.16 deve ser atualizada
e ´e poss´ıvel clicar em “Atualizar” na coluna “A¸oes” para inserir estudantes na turma. Essa ao
levar´a `a tela de atualiza¸ao da turma, conforme ilustrado na Figura 2.18. Nessa tela, ´e poss´ıvel fazer
a importa¸ao de um arquivo no formato CSV contendo a lista de estudantes que ser˜ao adicionados
`a turma.
Na Figura 2.16, o professor pode clicar no odigo da turma (primeira coluna) e aparece a tela
apresentada na Figura 2.19, onde o professor pode atualizar ou apagar estudantes. Veja na Figura
2.20 a tela para atualizar os dados de um estudante.
Na Figura 2.18, ´e poss´ıvel observar uma lista de todas as disciplinas do professor, se houver
alguma, em “Escolher Disciplinas”. Ao clicar no odigo de uma turma espec´ıfica (primeira coluna),
o professor pode acessar a tela apresentada na Figura 2.19.
Francisco de Assis Zampirolli MCTest 26
2.2. CRIAR ENTIDADES
Figura 2.12: Tela para o administrador criar uma disciplina. Tela semelhante `a primeira parte da
tela de atualizar uma disciplina.
Al´em disso, ao clicar no nome de um estudante espec´ıfico, o professor pode acessar a tela
apresentada na Figura 2.20, onde ´e poss´ıvel atualizar os dados do estudante, como nome, e-mail e
matr´ıcula. Essa funcionalidade permite que os professores mantenham a lista de estudantes atuali-
zada e corrigir eventuais erros ou inconsistˆencias nas informa¸oes.
2.2.5 opico
Os opicos ao definidos para agrupar quest˜oes numa disciplina. Cada disciplina possui um
conjunto de opicos associados. A cria¸ao, atualiza¸ao ou exclus˜ao de um opico de disciplina(s)
´e restrita ao usu´ario com perfil de coordenador ou ao administrador, conforme indicado na lista
de opicos apresentada na Figura 2.21.
´
E importante ressaltar que a lista exibida corresponde aos
opicos das disciplinas onde o usu´ario est´a envolvido.
A Figura 2.22 apresenta a tela para atualiza¸ao de um opico, que ´e semelhante `a tela de ca-
dastro de um novo opico. Uma das principais funcionalidades dispon´ıveis nessa tela ´e a possibilidade
de associar mais de uma disciplina ao opico em quest˜ao, mantendo a tecla Ctrl pressionada. Essa
flexibilidade permite que um mesmo opico possa ser utilizado em diferentes disciplinas, conforme as
necessidades e particularidades de cada uma delas.
Francisco de Assis Zampirolli MCTest 27
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.13: Segunda parte da tela para o administrador atualizar uma disciplina.
Ao clicar em um opico na primeira coluna da Figura 2.21, ser´a aberta uma tela detalhando as
quest˜oes relacionadas ao opico, conforme ilustrado na Figura 2.23 (as outras colunas ser˜ao detalhadas
nos pr´oximos cap´ıtulos).
´
E importante destacar o bot˜ao “Criar-PDF”, que permite a cria¸ao de um
arquivo PDF contendo todas as quest˜oes do opico selecionado, conforme ilustrado na Figura 2.24.
Detalhes sobre este arquivo ser˜ao abordados em cap´ıtulos futuros.
2.3 Considera¸oes finais
Neste cap´ıtulo, foi apresentada uma vis˜ao geral do MCTest, enfatizando sua estrutura e funcio-
nalidades essenciais. Foi discutida a navega¸ao geral do sistema, destacando como os usu´arios podem
acessar as diferentes entidades dispon´ıveis, como institutos, cursos, disciplinas, turmas e opicos.
Os diferentes tipos de usu´arios com acesso ao MCTest foram apresentados, incluindo admi-
nistrador, coordenador e professor, juntamente com suas respectivas permiss˜oes e responsabilidades
espec´ıficas.
O administrador foi identificado como o usu´ario com maior privil´egio, possuindo acesso irres-
trito a todas as funcionalidades e dados do sistema. Sua responsabilidade abrange a configura¸ao do
sistema, cria¸ao e gerenciamento de outros usu´arios, bem como a defini¸ao de parˆametros gerais do
MCTest.
O coordenador, por sua vez, possui um conjunto de ferramentas espec´ıficas para gerenciar a
disciplina, permitindo a cria¸ao e manuten¸ao de opicos relevantes para o andamento das aulas,
bem como a cria¸ao de turmas e seus respectivos estudantes.
´
E importante ressaltar que o acesso `as
configura¸oes gerais do sistema ´e restrito ao administrador. Al´em disso, o coordenador pode cadastrar
outros coordenadores e professores para colaborarem na gest˜ao da disciplina. Uma funcionalidade
Francisco de Assis Zampirolli MCTest 28
2.3. CONSIDERAC¸
˜
OES FINAIS
Figura 2.14: (Parte 1) Tela apresentando os detalhes de uma disciplina.
interessante dispon´ıvel ao coordenador ´e a cria¸ao de turmas por meio da importa¸ao de arquivos
CSV, pr´atica que favorece a organiza¸ao e evita poss´ıveis erros durante a inser¸ao manual de dados.
O professor tem acesso mais restrito em compara¸ao com o coordenador e o administrador. Sua
responsabilidade abrange a cria¸ao e manuten¸ao dos exames, turmas e estudantes atribu´ıdos a ele,
assim como a elabora¸ao e utiliza¸ao de quest˜oes da disciplina. No entanto, ele ao possui permiss˜ao
para cadastrar ou editar disciplinas, ou opicos, reservadas ao coordenador e ao administrador.
Os detalhes espec´ıficos de cada funcionalidade atribu´ıda a esses usu´arios ser˜ao abordados
em cap´ıtulos futuros, fornecendo informa¸oes detalhadas sobre as ferramentas dispon´ıveis para cada
perfil, bem como as oes que podem ser realizadas no sistema.
As entidades quest˜ao e exame desempenham pap´eis fundamentais no MCTest, e sua descri¸ao
detalhada ser´a realizada nas Partes II e III, respectivamente, em virtude de sua complexidade e
Francisco de Assis Zampirolli MCTest 29
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.15: (Parte 2) Continua¸ao da tela apresentando os detalhes de uma disciplina.
relevˆancia para o funcionamento do sistema.
A elabora¸ao de quest˜oes parametrizadas representa o aspecto mais desafiador do sistema,
exigindo criatividade, conhecimento da sintaxe L
A
T
E
X e dom´ınio da linguagem Python. No entanto,
ap´os a cria¸ao bem-sucedida dessas quest˜oes, elas podem ser reutilizadas em diversos exames, desde
que adequadamente parametrizadas. Essa caracter´ıstica simplifica a cria¸ao de novos exames.
Por sua vez, a entidade exame ´e considerada o elemento central do sistema, uma vez que todo
o processo avaliativo ´e constru´ıdo em torno dela. Os exames ao a ferramenta pela qual os estudantes
ao avaliados e os resultados obtidos, tornando essa entidade indispens´avel para o ˆexito do MCTest
como um sistema de avalia¸ao educacional.
Francisco de Assis Zampirolli MCTest 30
2.3. CONSIDERAC¸
˜
OES FINAIS
Figura 2.16: Tela que apresenta a lista de turmas, na qual um professor de uma disciplina pode criar
uma nova turma, al´em de atualizar ou apagar turmas existentes.
Francisco de Assis Zampirolli MCTest 31
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.17: Tela utilizada pelo professor para criar uma nova turma ap´os clicar no bot˜ao “Criar
uma nova Turma”, na tela da Figura 2.16.
´
E importante destacar que o nome da turma ao pode
conter acentos ou caracteres especiais, pois esse nome far´a parte do cabcalho do exame.
Francisco de Assis Zampirolli MCTest 32
2.3. CONSIDERAC¸
˜
OES FINAIS
Figura 2.18: Tela para um professor de uma disciplina poder atualizar uma turma, inserindo estu-
dantes com a importa¸ao de um arquivo no formato CSV.
Francisco de Assis Zampirolli MCTest 33
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.19: Tela para um professor de uma disciplina poder atualizar uma turma, atualizando ou
apagando estudantes da turma. Al´em disso, ´e poss´ıvel incluir um novo estudante na turma.
Figura 2.20: Tela para um professor de uma disciplina poder atualizar os dados de um estudante da
turma.
Francisco de Assis Zampirolli MCTest 34
2.3. CONSIDERAC¸
˜
OES FINAIS
Figura 2.21: Tela com a lista de opicos para o coordenador (ou administrador) criar, atualizar ou
apagar um opico de disciplina(s).
Francisco de Assis Zampirolli MCTest 35
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.22: Tela para o coordenador (ou administrador) atualizar um opico de uma disciplina.
Francisco de Assis Zampirolli MCTest 36
2.3. CONSIDERAC¸
˜
OES FINAIS
Figura 2.23: Tela apresentando os detalhes de um opico.
Francisco de Assis Zampirolli MCTest 37
CAP
´
ITULO 2. VIS
˜
AO GERAL DO MCTEST
Figura 2.24: Tela apresentando as trˆes primeiras quest˜oes de um opico.
Francisco de Assis Zampirolli MCTest 38
Cap´ıtulo 3
Recursos avan¸cados
Conte´udo
3.1 Administrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1.1 Criar um curso relacionado a dois institutos . . . . . . . . . . . . . . . 40
3.1.2 Criar uma disciplina relacionada a dois cursos . . . . . . . . . . . . . . 40
3.1.3 Acesso ao banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Coordenador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2.1 Criar um opico relacionado a duas ou mais disciplinas . . . . . . . . . 43
3.2.2 Criar arias turmas com arquivo CSV . . . . . . . . . . . . . . . . . . . 47
3.3 Professor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.1 Criar turma com arquivo CSV . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.2 Criar turma com arquivo CSV restri¸oes . . . . . . . . . . . . . . . . 51
3.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Este cap´ıtulo fornece uma vis˜ao mais detalhada do sistema MCTest, apresentado no cap´ıtulo
anterior, destacando as funcionalidades espec´ıficas dispon´ıveis para os trˆes tipos de usu´arios: admi-
nistrador, coordenador e professor. Cada um desses usu´arios tem acesso a um conjunto espec´ıfico
de funcionalidades para criar e gerenciar as diversas entidades do sistema, incluindo instituto, curso,
disciplina, opico e turma.
´
E relevante enfatizar que as entidades quest˜ao e exame ser˜ao discutidas em cap´ıtulos distintos
nas Partes II e III deste livro, respectivamente, devido `a sua significativa importˆancia no processo de
avalia¸ao. Nesta se¸ao, ser˜ao abordadas as funcionalidades mais avan¸cadas do MCTest dispon´ıveis
para cada tipo de usu´ario, visando facilitar a utiliza¸ao efetiva do sistema.
Para fornecer exemplos pr´aticos, ser˜ao criadas novas entidades no banco de dados disponibi-
lizado no GitHub, apresentado na se¸ao anterior. Essas entidades ser˜ao criadas de forma gradual e
explicativa ao longo deste cap´ıtulo.
Cabe destacar que os usu´arios em acesso somente `as funcionalidades pertinentes ao seu papel
39
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
no sistema. Por exemplo, um professor pode optar por estudar somente a Se¸ao 3.3 Professor deste
cap´ıtulo para obter informa¸oes relevantes para as suas responsabilidades no MCTest.
3.1 Administrador
Nesta se¸ao, ser˜ao discutidas outras funcionalidades destinadas ao administrador do sistema.
O papel do administrador consiste em configurar o sistema conforme as necessidades da institui¸ao,
criar institutos, cursos e disciplinas necess´arios e disponibilizar as disciplinas aos coordenadores para
poderem utiliz´a-las no sistema.
3.1.1 Criar um curso relacionado a dois institutos
No cap´ıtulo anterior, foi abordada a navega¸ao individual de cada usu´ario na plataforma
MCTest. Especificamente, nas Se¸oes 2.2.1 Instituto e 2.2.2 Curso, foi explorado como o admi-
nistrador pode criar institutos e cursos, respectivamente. Em situa¸oes em que um curso ´e oferecido
por dois institutos distintos, pode ser vantajoso configurar comportamentos espec´ıficos para cada
um deles. Para ilustrar essa ideia, foi considerado hipoteticamente um curso de Engenharia da
Computa¸ao na UFABC, dividido entre o Centro de Matem´atica, Computa¸ao e Cogni¸ao (CMCC)
e o Centro de Engenharia, Modelagem e Ciˆencias Sociais Aplicadas (CECS). Nesse contexto, se-
ria interessante configurar o MCTest para permitir um acesso mais personalizado a cada instituto.
Uma poss´ıvel configura¸ao para essa situa¸ao pode ser visualizada na Figura 3.1, com a cria¸ao dos
institutos CECS e CMCC.
Ap´os o administrador clicar em “Criar um novo Curso” na Figura 3.2, ser´a exibida a tela de
cria¸ao de um novo curso, apresentada na Figura 3.3. Para associar o curso a dois institutos distintos,
basta manter o bot˜ao “Ctrl” pressionado e clicar nos institutos desejados. A tela de cria¸ao de um
novo curso ´e semelhante `a tela de atualiza¸ao de um curso a existente. Observe na Figura 3.4 a lista
de cursos vista pelo administrador ap´os ter criado o curso de Engenharia da Computa¸ao na Figura
3.3. Na coluna “Instituto”, o curso de Engenharia da Computa¸ao est´a associado aos centros CECS
e CMCC.
3.1.2 Criar uma disciplina relacionada a dois cursos
Nas Se¸oes 2.2.2 Curso e 2.2.3 Disciplina, foram abordados os procedimentos para o
administrador poder criar cursos e disciplinas, respectivamente. Para ilustrar a relevˆancia da cria¸ao
de uma disciplina relacionada a dois cursos, ser´a apresentado o seguinte cen´ario.
A disciplina de Processamento Digital de Imagens (PDI) ´e uma ´area da Ciˆencia da Com-
puta¸ao que se dedica ao estudo e desenvolvimento de ecnicas e algoritmos para manipula¸ao,
an´alise e PDI. Essa disciplina ´e muito importante tanto para estudantes de gradua¸ao em Ciˆencia
da Computa¸ao quanto para estudantes de mestrado e doutorado, por oferecer uma base olida de
conhecimentos e habilidades para a solu¸ao de problemas em diversas ´areas de aplica¸ao.
Francisco de Assis Zampirolli MCTest 40
3.1. ADMINISTRADOR
Figura 3.1: Tela com a lista de institutos vista pelo administrador, que pode atualizar, apagar ou
criar um instituto para simular um curso pertencer aos institutos CECS e CMCC.
No curso de gradua¸ao em Ciˆencia da Computa¸ao, a disciplina de PDI aborda diversas
t´ecnicas relevantes para o processamento e an´alise de imagens digitais. Entre elas, destaca-se a
representa¸ao de imagens digitais, que envolve o uso de matrizes para representar as cores dos pixels,
e t´ecnicas de filtragem, que permitem a melhoria da qualidade da imagem, atrav´es da redu¸ao de
ru´ıdos e realce de contornos de objetos.
Al´em disso, a disciplina de PDI tamb´em aborda t´ecnicas de segmenta¸ao de imagens, que
permitem a identifica¸ao de regi˜oes de interesse na imagem, e ecnicas de reconhecimento de padr˜oes
em imagens, que permitem a identifica¸ao de objetos, faces e outros elementos na imagem.
Durante o curso de mestrado ou doutorado em Ciˆencia da Computa¸ao, a disciplina de PDI
explora ecnicas avan¸cadas, incluindo o uso de Redes Neurais Convolucionais (CNN do inglˆes Con-
volutional Neural Network). Essas t´ecnicas tˆem se mostrado altamente eficazes para a segmenta¸ao,
reconhecimento e classifica¸ao de imagens.
Francisco de Assis Zampirolli MCTest 41
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
Figura 3.2: Tela com a lista de curso, vista pelo administrador.
As CNN ao uma classe de Redes Neurais Artificiais que em sido amplamente utilizadas em
tarefas de PDI, como a segmenta¸ao de objetos em imagens m´edicas ou a classifica¸ao de imagens em
categorias espec´ıficas. Essas redes podem extrair caracter´ısticas das imagens de forma autom´atica,
sem a necessidade de recursos humanos para a extra¸ao manual de caracter´ısticas.
Com a utiliza¸ao de CNN, ´e poss´ıvel obter excelentes resultados na segmenta¸ao, reconheci-
mento e classifica¸ao de imagens. Por exemplo, na ´area edica, ´e poss´ıvel identificar automatica-
mente regi˜oes de interesse em imagens de ressonˆancia magn´etica ou tomografia computadorizada,
auxiliando no diagn´ostico de doen¸cas.
Portanto, a disciplina de PDI ´e de grande importˆancia tanto para os estudantes de gradua¸ao
quanto para os estudantes de mestrado e doutorado em Ciˆencia da Computa¸ao. Al´em disso, as
quest˜oes relacionadas a essa disciplina podem ser compartilhadas entre esses dois cursos.
Dessa forma, ´e vi´avel adicionar a disciplina de PDI no MCTest e relacion´a-la com os cursos
de gradua¸ao e os-gradua¸ao, conforme ilustrado na Figura 3.5. Esse processo ´e semelhante ao de
Francisco de Assis Zampirolli MCTest 42
3.2. COORDENADOR
Figura 3.3: Tela para o administrador criar um curso novo relacionado a dois institutos. Manter a
tecla “Ctrl” pressionada para escolher mais de uma op¸ao.
associar um curso a dois institutos.
3.1.3 Acesso ao banco de dados
Embora o administrador tenha acesso direto ao banco de dados (BD) ao pressionar o bot˜ao
“Admin” na Figura 2.2-(e), a melhor op¸ao ´e evitar alterar o BD usando esse recurso.
´
E recomendado
utilizar as telas de navega¸ao do MCTest para fazer as altera¸oes necess´arias, pois alterar o BD
diretamente pode resultar em relacionamentos incorretos entre as entidades, o que pode tornar o
sistema inoperante.
3.2 Coordenador
Nesta se¸ao, ser˜ao abordadas as funcionalidades destinadas ao coordenador de disciplina, que
envolvem a manuten¸ao de opicos e disciplinas. O coordenador tem a responsabilidade de criar e
gerenciar os opicos e disciplinas que ser˜ao utilizados pelos professores para criar exames e Exerc´ıcios
de Programa¸ao (EPs).
3.2.1 Criar um opico relacionado a duas ou mais disciplinas
A interdisciplinaridade ´e uma abordagem essencial na educa¸ao moderna, que visa integrar
conhecimentos de diferentes ´areas para enriquecer o processo de aprendizagem e forma¸ao dos estu-
dantes. Nesse sentido, a UFABC se destaca na interdisciplinaridade, conforme apresentado em sua
miss˜ao:
Francisco de Assis Zampirolli MCTest 43
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
Figura 3.4: Tela com a lista de curso, vista pelo administrador, ap´os ter criado o curso Engenharia
da Computa¸ao na Figura 3.3.
Miss˜ao da UFABC:
Promover o avan¸co do conhecimento por oes de ensino, pesquisa e extens˜ao,
tendo como fundamentos asicos a interdisciplinaridade, a excelˆencia e a inclus˜ao
social.
Nesse sentido, compartilhar um opico entre duas ou mais disciplinas pode trazer in´umeros
benef´ıcios para a educa¸ao. Como mencionado na Se¸ao 2.2.5 opico, um opico o existe no
MCTest se pertencer a uma disciplina, mas pode ser compartilhado entre arias delas. Al´em disso,
as quest˜oes o existem se estiverem inseridas em um opico.
Um exemplo pr´atico dessa abordagem pode ser observado na UFABC, onde a ogica de pro-
grama¸ao ´e abordada em diversas disciplinas. Especificamente, esse opico ´e tratado no Bacharelado
em Ciˆencia e Tecnologia (BCT), no segundo exame da disciplina de Bases Computacionais da Ciˆencia
Francisco de Assis Zampirolli MCTest 44
3.2. COORDENADOR
Figura 3.5: Tela com a lista de disciplinas, vista pelo administrador, com destaque para a disciplina
PDI, que est´a relacionada aos cursos de BCC e POSCOMP.
(CS0) para os ingressantes e tamb´em no primeiro exame de Processamento da Informa¸ao (PI CS1)
no terceiro quadrimestre dos ingressantes. Atualmente, a maioria das turmas dessas duas disciplinas
utiliza a linguagem Python. Al´em disso, a disciplina de Programa¸ao Estruturada (PE CS2) do
Bacharelado em Ciˆencia da Computa¸ao tamem aborda a ogica de programa¸ao no primeiro exame,
utilizando a linguagem C.
Ao elaborar quest˜oes sobre ogica de programa¸ao de forma independente da linguagem utili-
zada, ´e poss´ıvel compartilhar essas quest˜oes entre as trˆes disciplinas mencionadas. Essa pr´atica tem
arias vantagens:
Otimiza¸ao de recursos: Ao compartilhar quest˜oes e opicos, ´e poss´ıvel economizar tempo e es-
for¸co dos professores na cria¸ao de materiais did´aticos, permitindo que se concentrem em outras
tarefas importantes, como atendimento aos estudantes e pesquisas de novas metodologias de
ensino;
Francisco de Assis Zampirolli MCTest 45
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
Figura 3.6: Tela com a lista de entidades que o administrador pode fazer manuten¸ao diretamente
no BD.
Consistˆencia no conte´udo: Ao utilizar opicos comuns entre diferentes disciplinas, os estudantes
ao expostos a uma abordagem consistente e coerente, facilitando a compreens˜ao e a conex˜ao
entre os conceitos aprendidos;
Francisco de Assis Zampirolli MCTest 46
3.2. COORDENADOR
Desenvolvimento de habilidades transfer´ıveis: Ao aprender sobre um opico em arias disci-
plinas, os estudantes tˆem a oportunidade de desenvolver habilidades transfer´ıveis, como pen-
samento cr´ıtico, resolu¸ao de problemas e comunica¸ao. Essas habilidades ao essenciais para
o sucesso em diversas ´areas profissionais;
Fomento da interdisciplinaridade: Compartilhar opicos entre disciplinas incentiva os estudan-
tes a estabelecer conex˜oes entre diferentes campos do conhecimento, promovendo uma educa¸ao
mais integrada e abrangente.
A Figura 3.7 exemplifica uma lista de opicos, demonstrando que um determinado opico pode
pertencer a trˆes disciplinas diferentes. Adicionalmente, a Figura 3.8 apresenta detalhes espec´ıficos
da disciplina de Processamento da Informa¸ao, com destaque para os opicos compartilhados. Essa
configura¸ao permite que um professor utilize todas as quest˜oes desses opicos ao elaborar um exame.
3.2.2 Criar arias turmas com arquivo CSV
No cap´ıtulo anterior, foi abordada a cria¸ao de disciplinas na Se¸ao 2.2.3 Disciplina, e a
cria¸ao de turmas com estudantes foi apresentada na Se¸ao 2.2.4 Turma. No entanto, em algumas
situa¸oes, pode ser necess´ario criar arias turmas da mesma disciplina simultaneamente. Para atender
a essa demanda, foram implementadas funcionalidades que permitem ao coordenador cadastrar todos
os professores e estudantes de m´ultiplas turmas de uma o vez, por meio da importa¸ao de arquivos
no formato CSV, conforme ilustrado na Figura 3.10.
Melhorias:
´
E importante ressaltar que esse recurso precisa ser aprimorado e, por enquanto, o bot˜ao
“Upload-Turma” ir´a remover todos os estudantes de todas as turmas associadas a essa dis-
ciplina, atualizando com os novos dados do arquivo CSV. Portanto, ´e fundamental ter cuidado
ao utilizar essa funcionalidade e garantir que os dados do arquivo CSV estejam corretos e
atualizados.
As telas para cria¸ao e atualiza¸ao de disciplinas apresentadas nas Figuras 3.9 e 3.10 ao
semelhantes e est˜ao dispon´ıveis tanto para o administrador quanto para o coordenador da disciplina.
Na Figura 3.10, o primeiro arquivo CSV ´e destinado ao coordenador para inserir diversos professores
na disciplina, com o perfil de professor a configurado, como apresentado a seguir:
Arquivo CSV com dados dos professores:
123, Jo~ao da Silva, joao@ufabc.edu.br
987, Maria Gon¸calves, maria@ufabc.edu.br
Por sua vez, o segundo arquivo CSV nesta figura ´e utilizado pelo coordenador para adicionar
arias turmas, contendo estudantes e professores, com um formato pr´e-definido como segue:
Francisco de Assis Zampirolli MCTest 47
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
Figura 3.7: Tela com a lista de opicos, vista pelo coordenador.
´
E poss´ıvel observar o compartilha-
mento de opicos entre disciplinas.
Arquivo CSV com dados de estudantes e professores:
123, Jo~ao Silva, js@gmail.com, DA1, sala1, PClass, fzprof@ufabc.edu.br
987, Maria Campos, mc@gmail.com, DA2, sala2, TClass, fzprof@ufabc.edu.br
Este ´ultimo arquivo CSV apresenta as seguintes colunas, em ordem: identifica¸ao do estu-
dante, nome completo do estudante, e-mail do estudante, turma, sala, “PClass” (para turma pr´atica)
ou “TClass” (para turma te´orica) e e-mail do professor.
Francisco de Assis Zampirolli MCTest 48
3.3. PROFESSOR
Figura 3.8: Tela com detalhes da disciplina de Processamento da Informa¸ao, vista pelo coordenador,
com os opicos compartilhados tamb´em apresentados na Figura 3.7.
3.3 Professor
Nesta se¸ao ser´a abordada mais funcionalidades destinadas aos professores, que incluem a
manuten¸ao de turmas, quest˜oes e exames. O professor ´e respons´avel por criar as turmas, selecionar
as quest˜oes e criar os exames para avaliar os estudantes. Com o sistema MCTest, os professores
podem criar exames com quest˜oes de m´ultipla escolha (QMs) ou dissertativas (QTs), incluindo EPs
Francisco de Assis Zampirolli MCTest 49
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
Figura 3.9: (Parte 1) Tela de cria¸ao da disciplina de Processamento da Informa¸ao pelo adminis-
trador.
parametrizados para corre¸ao autom´atica no Moodle, utilizando o plugin VPL.
3.3.1 Criar turma com arquivo CSV
O professor ´e respons´avel por criar uma turma e manter os dados de seus estudantes atualiza-
dos, como discutido na Se¸ao 2.2.4 Turma. O primeiro passo ´e criar a turma e relacion´a-la a uma
disciplina, conforme ilustrado na Figura 2.17. Em seguida, o professor pode inserir os estudantes de
trˆes maneiras distintas:
1. Selecionando arios estudantes na lista com a tecla “Ctrl” pressionada, como demonstrado na
Figura 2.18;
2. Incluindo um estudante de cada vez, conforme exemplificado na Figura 2.19 e/ou atualizando
os dados de um estudante, como demonstrado na Figura 2.20;
3. Ou, de maneira mais eficiente, utilizando um arquivo CSV, vistos a seguir.
Para utilizar um arquivo CSV para preencher uma turma com estudantes, o professor deve
primeiro criar a turma, como ilustrado na Figura 2.17, e em seguida fazer o upload do arquivo no
Francisco de Assis Zampirolli MCTest 50
3.3. PROFESSOR
Figura 3.10: (Parte 2) Tela de cria¸ao da disciplina de Processamento da Informa¸ao pelo admi-
nistrador.
´
E poss´ıvel incluir professores, turmas e estudantes pela importa¸ao de dois arquivos no
formato CSV.
in´ıcio da Figura 2.18, selecionando o arquivo em “Escolher arquivo” e, em seguida, clicando no bot˜ao
“Importar-Estudantes”. O arquivo deve seguir o formato apresentado abaixo:
Arquivo CSV com dados completos:
123, Jo~ao da Silva, joao@aluno.ufabc.edu.br
987, Maria Gon¸calves, maria@aluno.ufabc.edu.br
Observe que a primeira linha do arquivo a representa o primeiro estudante, com sua identi-
fica¸ao, nome completo e e-mail, separados por v´ırgula ou ponto e v´ırgula.
´
E importante destacar
que o e-mail ´e opcional, como no exemplo abaixo:
Arquivo CSV, sem e-mail:
123, Jo~ao da Silva
987, Maria Gon¸calves
3.3.2 Criar turma com arquivo CSV restri¸oes
O professor deve ter uma aten¸ao especial aos acentos e s´ımbolos especiais neste arquivo CSV,
que deve seguir o formato UTF-8. Uma alternativa ´e converter esses s´ımbolos para o formato L
A
T
E
X,
utilizando, por exemplo, o recurso dispon´ıvel na internet em w2.syronex.com/jmr/latex-symbols-
converter, conforme exemplo abaixo:
Francisco de Assis Zampirolli MCTest 51
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
Arquivo CSV, com acentos no formato L
A
T
E
X:
123, Jo\~{a}o da Silva, joao@aluno.ufabc.edu.br
987, Maria Gon\c{c}alves, maria@aluno.ufabc.edu.br
Observoes:
1. O nome do estudante no sistema tem um limite de 45 caracteres. Caso o arquivo CSV
contenha um nome de estudante com mais de 45 caracteres, o sistema ir´a remover automa-
ticamente o(s) sobrenome(s) do meio, de tr´as para frente, mantendo o ´ultimo sobrenome,
at´e atingir os 45 caracteres permitidos. Essa medida ´e tomada para garantir a integri-
dade dos dados e evitar problemas de exceder o limite de caracteres ao incluir o nome
do estudante em um exame. Um exemplo pode ser visto na Figura 3.11;
2. Caso o arquivo contenha um identificador a existente, o sistema ao criar´a ou alterar´a
o mesmo.
Figura 3.11: Tela mostrando o resultado do cadastro de estudantes utilizando a importa¸ao de um
arquivo no formato CSV.
3.4 Considera¸oes finais
Este cap´ıtulo expandiu as funcionalidades apresentadas no cap´ıtulo anterior, apresentando
recursos avan¸cados dispon´ıveis no MCTest para usu´arios com diferentes pap´eis (administrador, coor-
denador e professor). Cada tipo de usu´ario tem acesso a um conjunto espec´ıfico de ferramentas para
criar e gerenciar as diversas entidades do sistema de avalia¸ao, como institutos, cursos, disciplinas,
opicos, turmas, professores e estudantes.
As funcionalidades abordadas procuram facilitar o gerenciamento das entidades e a confi-
gura¸ao do sistema conforme as necessidades de cada institui¸ao. O administrador, em particular,
tem permiss˜oes amplas para configurar o sistema e gerenciar o acesso dos usu´arios. Os coordenado-
res ao respons´aveis por gerenciar disciplinas, opicos e turmas. a os professores podem gerenciar
quest˜oes, exames, turmas e estudantes sob sua responsabilidade.
Nos pr´oximos cap´ıtulos da Parte II, ser˜ao abordados a cria¸ao e o gerenciamento de quest˜oes
Francisco de Assis Zampirolli MCTest 52
3.4. CONSIDERAC¸
˜
OES FINAIS
no MCTest, enfocando as diversas formas de elabora¸ao, revis˜ao e aprovao das quest˜oes destinadas
a serem aplicadas nos exames discutidos na Parte III.
Francisco de Assis Zampirolli MCTest 53
CAP
´
ITULO 3. RECURSOS AVANC¸ ADOS
Francisco de Assis Zampirolli MCTest 54
Parte II
Quest˜oes no MCTest
Conte´udo
4 Quest˜oes est´aticas 57
5 Quest˜oes param´etricas 69
55
Francisco de Assis Zampirolli MCTest 56
Cap´ıtulo 4
Quest˜oes est´aticas
Conte´udo
4.1 Tutoriais gerais sobre a navega¸ao de quest˜oes . . . . . . . . . . . . . . . . . . 57
4.2 Quest˜ao de m´ultipla escolha (QM) . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3 Quest˜ao dissertativa (QT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
A cria¸ao de quest˜oes est´aticas ´e fundamental para a avalia¸ao educacional e existem diver-
sas abordagens e formatos dispon´ıveis. Neste cap´ıtulo, ser˜ao abordados os dois principais tipos de
quest˜oes est´aticas utilizados em avalia¸oes educacionais: as quest˜oes de m´ultipla escolha (QMs) e as
quest˜oes dissertativas ou de texto (QTs). O objetivo ´e apresentar as caracter´ısticas e particularida-
des de cada tipo de quest˜ao, bem como as vantagens e desvantagens de sua utiliza¸ao na avalia¸ao
da aprendizagem.
´
E importante destacar que as quest˜oes apresentadas neste cap´ıtulo ao ao para-
metrizadas, sendo as ´unicas varia¸oes os sorteios das quest˜oes e alternativas, no caso das QMs. No
pr´oximo cap´ıtulo, ser˜ao abordadas as quest˜oes parametrizadas.
Neste cap´ıtulo, ser´a discutida a visibilidade do professor no menu do MCTest, permitindo que
ele fa¸ca a manuten¸ao das quest˜oes, exames e turmas que criou. Al´em disso, o professor tamb´em
pode visualizar e utilizar quest˜oes criadas por outros professores cadastrados nas mesmas disciplinas.
´
E importante compreender como essa funcionalidade pode ser ´util aos professores, proporcionando
maior uniformidade e controle sobre as avalia¸oes.
4.1 Tutoriais gerais sobre a navega¸c˜ao de quest˜oes
Na Figura 4.1, ´e apresentada a lista de quest˜oes que o usu´ario “fzprof pode visualizar ao
clicar no bot˜ao “Quest˜oes” `a esquerda do menu superior. Esse menu exibe todas as quest˜oes criadas
por todos os professores cadastrados nas mesmas disciplinas de “fzprof”.
57
CAP
´
ITULO 4. QUEST
˜
OES EST
´
ATICAS
A Figura 4.1 exibe a lista de quest˜oes, apresentando diversos atributos (colunas), como o
“T´opico” da disciplina, o “Tipo” de quest˜ao (podendo ser QM ou QT), o n´umero de alternativas
(no caso do tipo QM, que neste exemplo ´e cinco), o “Grupo” da quest˜ao (para evitar que sejam
sorteadas duas ou mais quest˜oes do mesmo grupo em um exame), a dificuldade variando de 1 a 5,
se ´e param´etrica, a identifica¸ao da quest˜ao no banco de dados (“ID”), a “Descri¸ao curta” (para
facilitar o entendimento do que se trata a quest˜ao sem precisar abrir todo o enunciado) e, por fim,
os bot˜oes de “A¸oes”, que permitem atualizar ou apagar a quest˜ao.
Figura 4.1: Tela para o professor visualizar todas as quest˜oes de disciplinas que est´a cadastrado.
Caso o professor tente modificar uma quest˜ao que ao ´e de sua autoria, ser´a exibida a men-
sagem de erro apresentada na Figura 4.2.
Francisco de Assis Zampirolli MCTest 58
4.1. TUTORIAIS GERAIS SOBRE A NAVEGAC¸
˜
AO DE QUEST
˜
OES
Figura 4.2: Exibi¸ao de erro ao tentar modificar quest˜ao criada por outro autor.
Observoes:
1. Embora a Figura 4.1 exiba os bot˜oes “Atualizar” e “Apagar”, ´e importante ressaltar
que, caso o professor tente alterar ou apagar uma quest˜ao criada por outro professor, o
sistema ao permitir´a a modifica¸ao ou exclus˜ao da quest˜ao;
2.
´
E interessante manter o bot˜ao “Atualizar” dispon´ıvel, por permitir que qualquer professor
da disciplina possa visualizar como a quest˜ao foi criada. Ao clicar nas colunas “Tipo”
at´e “Descri¸ao curta”, o professor pode conferir a quest˜ao em um modo diferente e
simplificado, como mostrado na Figura 4.3.
´
E importante ressaltar que essa ao ´e a
melhor forma de visualizar os detalhes da quest˜ao, mas o professor pode acessar o PDF
completo de visualiza¸ao da quest˜ao clicando no bot˜ao “Criar-PDF”.
Figura 4.3: Exibi¸ao da quest˜ao QE1 criada por outro autor.
Na Figura 4.4, ´e poss´ıvel observar que o professor “fzprof ainda ao criou nenhuma quest˜ao.
Para criar novas quest˜oes, o professor pode importar um arquivo no formato TXT, conforme exem-
Francisco de Assis Zampirolli MCTest 59
CAP
´
ITULO 4. QUEST
˜
OES EST
´
ATICAS
plificado abaixo. Esse formato foi utilizado na vers˜ao 4 do MCTest, que executava no console de
um computador e aceitava apenas trˆes n´ıveis de dificuldade: acil (QE), edio (QM) e dif´ıcil (QH),
representados em inglˆes por easy, median e hard, respectivamente. a a vers˜ao web atual do MCTest
aceita cinco n´ıveis de dificuldade, de 1 a 5. Ao importar uma quest˜ao de um arquivo TXT na vers˜ao
web, as quest˜oes com n´ıvel de dificuldade QE ter˜ao dificuldade 1, as QM ter˜ao dificuldade 3 e as QH
ter˜ao dificuldade 5.
No exemplo a seguir, o opico ´e “DE-matriz” e ´e necess´ario existir uma disciplina com esse
opico cadastrada no MCTest. Para evitar conflitos, ´e recomend´avel incluir algum odigo como
prefixo do opico, como o odigo da disciplina. Por exemplo, “DE-matriz” significa que o opico
matriz pertence `a disciplina “Disciplina Exemplo” cadastrada no MCTest. Al´em disso, o campo
“grupo” da quest˜ao ´e importante para evitar que duas quest˜oes do mesmo grupo sejam sorteadas em
um mesmo exame. Isso ser´a exemplificado em cap´ıtulos futuros ao explicar a elabora¸ao de exames.
Finalmente, as alternativas, se existirem, devem ser precedidas de “A:”, sendo a primeira alternativa
sempre a correta. Ao visualizar uma quest˜ao, as alternativas ser˜ao sorteadas a cada vez que o PDF
da quest˜ao for gerado.
´
E poss´ıvel criar arias QMs utilizando somente um arquivo TXT. Por´em, se
forem quest˜oes param´etricas, deve existir apenas uma quest˜ao por arquivo.
Arquivo CSV, com acentos no formato L
A
T
E
X:
QE::DE-matriz::grupo::
Crie uma matriz $3 \times 5$ de inteiros, com elementos $(i, j) = i + j$,
com ´ındices come¸cando em zero, imprima a soma dos elementos da matriz.
A: 44 % alternativa correta - sempre a primeira
A: 35
A: 43
A: 55
A: 47
Melhorias:
Por enquanto, o bot˜ao “Upload-Quest˜oes-Json” apresentado na Figura 4.4 ainda ao est´a
funcionando. Essa funcionalidade ser´a ´util para um professor poder fazer backup de suas
quest˜oes e recuper´a-las no futuro, caso necess´ario.
Em vez de criar quest˜oes por meio da importa¸ao de arquivos nos formatos TXT ou JSON,
outra op¸ao ´e criar as quest˜oes diretamente no MCTest. Para isso, basta clicar no bot˜ao “Criar uma
nova Quest˜ao”, apresentado na Figura 4.4. Em seguida, ser´a aberta a tela apresentada na Figura
4.5, onde ´e poss´ıvel criar uma nova quest˜ao. Cada quest˜ao deve pertencer a apenas um opico, e
o professor deve escolher um opico na op¸ao “Escolher opico”. No entanto, um mesmo opico
pode ser compartilhado por mais de uma disciplina, permitindo que as quest˜oes sejam utilizadas
em diferentes contextos. Em seguida, deve definir uma “Descri¸ao curta” e um “Grupo”. Tamb´em
deve definir uma “Descri¸ao”, escolher em “Tipo” se ´e QM ou QT, escolher uma “Dificuldade” entre
muito acil (1) e muito dif´ıcil (5), definir a “Taxonomia de Bloom” e, por fim, informar se a quest˜ao
Francisco de Assis Zampirolli MCTest 60
4.2. QUEST
˜
AO DE M
´
ULTIPLA ESCOLHA (QM)
Figura 4.4: Tela para o professor visualizar suas quest˜oes e criar novas, incluindo importa¸ao de
formato TXT.
´e param´etrica ou ao. Na Figura 4.6, ´e poss´ıvel ver um exemplo hipot´etico de preenchimento dos
campos para criar uma nova quest˜ao, antes de clicar no bot˜ao “Salvar”.
Vale destacar que ainda ser˜ao necess´arios incluir mais atributos no formul´ario da quest˜ao. Por
exemplo, ´e poss´ıvel adicionar as caracter´ısticas de cada quest˜ao utilizando a Teoria de Resposta ao
Item (TRI) (ZAMPIROLLI et al., 2021b; ZAMPIROLLI et al., 2021a). Al´em disso, a inclus˜ao da
“Taxonomia de Bloom” foi motivada pelos artigos de referˆencia Calsavara et al. (2018) e Correia et
al. (2018).
4.2 Quest˜ao de m´ultipla escolha (QM)
Nesta se¸ao, ser˜ao abordadas as QMs, ap´os a revis˜ao geral das quest˜oes apresentadas na se¸ao
anterior. A QM ´e um tipo de quest˜ao amplamente utilizado em avalia¸oes educacionais. Ela consiste
Francisco de Assis Zampirolli MCTest 61
CAP
´
ITULO 4. QUEST
˜
OES EST
´
ATICAS
Figura 4.5: Tela para um professor criar uma nova quest˜ao.
em apresentar ao estudante uma pergunta ou enunciado, seguido de diversas op¸oes de resposta,
geralmente variando de trˆes a cinco alternativas, das quais apenas uma ´e a correta. O objetivo ´e
verificar se o estudante possui o conhecimento necess´ario para identificar a resposta correta dentre
as op¸oes apresentadas. O MCTest tamb´em possibilita a existˆencia de mais de uma alternativa
correta, ou a atribui¸ao de pesos diferentes em cada alternativa, mas esses opicos ser˜ao abordados
em cap´ıtulos futuros.
As QMs ao frequentemente utilizadas em testes padronizados, exames de vestibular e con-
cursos p´ublicos, al´em de serem comuns em avalia¸oes em sala de aula. Elas ao consideradas uma
forma eficiente e pr´atica de avaliar o conhecimento dos estudantes, a que permitem avaliar in´umeras
pessoas em pouco tempo e com baixo custo. No entanto, uma das desvantagens desse tipo de quest˜ao
´e a possibilidade de pl´agio. O MCTest, por´em, consegue minimizar esse problema com a utiliza¸ao
de sorteio das quest˜oes e alternativas, gerando exames individuais para cada estudante.
Ap´os a cria¸ao da quest˜ao, realizada ao clicar no bot˜ao “Salvar” na Figura 4.6, pode ser
necess´ario atualiz´a-la para adicionar alternativas, caso seja uma QM. Para isso, basta acessar a
op¸ao “Quest˜oes” `a direita de “fzprof”, na Figura 4.1, e, em seguida, selecionar o bot˜ao “Atualizar”
referente `a quest˜ao desejada. Ser´a apresentada uma nova tela, conforme ilustrado na Figura 4.7.
Francisco de Assis Zampirolli MCTest 62
4.2. QUEST
˜
AO DE M
´
ULTIPLA ESCOLHA (QM)
Figura 4.6: Tela com valores preenchidos para criar uma nova quest˜ao, antes de clicar no bot˜ao
“Salvar”.
Na Figura 4.7, o professor pode visualizar a quest˜ao em formato PDF clicando no bot˜ao
“Criar-PDF”, mostrado na Figura 4.8. Ao se tratar de uma quest˜ao param´etrica que inclui odigos
em Python, o professor pode testar a quest˜ao separadamente no Google Colab, clicando no bot˜ao
“Compile-Colab”. O Colab ´e uma ferramenta muito ´util durante a cria¸ao de quest˜oes param´etricas,
a que o MCTest ainda ao oferece um ambiente para compilar e depurar odigos. No entanto, esse
opico ser´a abordado em cap´ıtulos futuros.
O bot˜ao “Salvar-Json” salva todas as quest˜oes criadas pelo usu´ario “fzprof em um arquivo no
formato JSON. A importa¸ao desse arquivo ainda ao est´a dispon´ıvel no MCTest, como observado
anteriormente.
Complementando a tela de cria¸ao de quest˜oes, apresentadas nas Figuras 4.5 e 4.6, a Figura
4.7 inclui os atributos “Quem criou” e a data da
´
Ultima atualiza¸ao”. A seguir est˜ao as pol´ıticas
de edi¸ao e uso de quest˜oes no MCTest:
Francisco de Assis Zampirolli MCTest 63
CAP
´
ITULO 4. QUEST
˜
OES EST
´
ATICAS
Observoes:
1. Somente o criador da quest˜ao ou o coordenador da disciplina podem editar uma quest˜ao;
2. No entanto, todos os professores cadastrados na disciplina tˆem permiss˜ao para utilizar
as quest˜oes em seus exames, se concordarem com os termos apresentados na Se¸ao 1.3.2
- Direitos autorais das quest˜oes dispon´ıveis no BD, dispon´ıvel na op¸ao “De Acordo”
da Figura 4.7. Essa ´e uma pol´ıtica adotada na UFABC, mas outras institui¸oes podem
adotar pol´ıticas diferentes.
Al´em disso, a Figura 4.7 apresenta campos para edi¸ao das alternativas da quest˜ao. Caso a
quest˜ao seja dissertativa e possua conte´udo nesses campos, esses valores ao ser˜ao utilizados ao criar
exames.
´
E importante observar que a tela apresenta apenas uma alternativa, incluindo o “Texto da
Resposta” e o “Retorno” desta alternativa” (este ´ultimo ´e opcional). Para criar novas alternativas,
´e necess´ario clicar no bot˜ao “Salvar”. De maneira similar, para excluir uma ou arias alternativas a
criadas, basta selecionar a caixa de sele¸ao “Apagar” correspondente a cada alternativa que deseja
excluir e, em seguida, clicar em “Salvar”.
A Figura 4.9 apresenta o PDF gerado de uma QM com cinco alternativas preenchidas, ap´os o
clique no bot˜ao “Criar-PDF”. O umero em verde representa o ID da quest˜ao no banco de dados. Os
valores em vermelho correspondem `as alternativas incorretas, enquanto o valor em azul representa a
alternativa correta, considerando a ordem de cria¸ao das alternativas definidas na Figura 4.7.
4.3 Quest˜ao dissertativa (QT)
Para criar uma quest˜ao dissertativa (QT de texto), basta selecionar a op¸ao “Quest˜ao
Dissertativa” no campo Tipo, conforme apresentado na Figura 4.5.
´
E importante observar que o
processo de cria¸ao para QTs ´e similar ao processo para QMs, apresentado na se¸ao anterior.
A Figura 4.10 apresenta um exemplo de PDF gerado para uma QT. Nesse tipo de quest˜ao,
o estudante deve escrever uma resposta livremente, sem a necessidade de escolher entre alternativas
predefinidas. As cinco linhas que aparecem nessa quest˜ao ao impressas utilizando o comando pr´e-
definido \drawLines{5}.
´
E comum que as QTs sejam usadas para avaliar a compreens˜ao do estudante
sobre um determinado tema, suas habilidades de an´alise e argumenta¸ao, ou ainda para avaliar a sua
capacidade de escrever de forma clara e organizada.
Na Figura 4.11, apresenta-se a altera¸ao do campo “Descri¸ao” da Figura 4.7, utilizando a
sintaxe do L
A
T
E
X, uma linguagem de marca¸ao amplamente utilizada na produ¸ao de documentos
acadˆemicos. O PDF gerado desta quest˜ao ´e apresentado na Figura 4.12
A quest˜ao avaliar´a as competˆencias e habilidades dos estudantes em rela¸ao aos conceitos de
condicional e repeti¸ao na programa¸ao. Esses conceitos ao fundamentais para o desenvolvimento de
algoritmos e programas computacionais, e ao frequentemente abordados em disciplinas introdut´orias
Francisco de Assis Zampirolli MCTest 64
4.4. CONSIDERAC¸
˜
OES FINAIS
Figura 4.7: Tela de atualiza¸ao para QM sem alternativas e feedback, previamente criada pelo pro-
fessor.
de programa¸ao.
4.4 Considera¸oes finais
O MCTest ´e uma plataforma completa que oferece diversas funcionalidades para a cria¸ao de
exames. Desde QMs e QTs at´e quest˜oes param´etricas que envolvem odigos em Python. O MCTest
oferece recursos para os professores poderem criar avalia¸oes personalizadas para suas turmas. Al´em
Francisco de Assis Zampirolli MCTest 65
CAP
´
ITULO 4. QUEST
˜
OES EST
´
ATICAS
Figura 4.8: Recorte do PDF gerado ap´os clicar no bot˜ao “Criar-PDF”, na Figura 4.7.
Figura 4.9: Recorte do PDF gerado ap´os clicar no bot˜ao “Criar-PDF”, na Figura 4.7, para a quest˜ao
atualizada com cinco alternativas.
Figura 4.10: Recorte do PDF gerado ap´os clicar no bot˜ao “Criar-PDF”, na Figura 4.7, para uma
quest˜ao dissertativa (“Type: QT”).
Francisco de Assis Zampirolli MCTest 66
4.4. CONSIDERAC¸
˜
OES FINAIS
Figura 4.11: Recorte da “Descri¸ao” de uma QT de Teste de Mesa.
disso, a plataforma permite que as quest˜oes sejam organizadas em bancos de dados para facilitar a
cria¸ao de exames.
No entanto, ´e importante destacar que o MCTest ´e apenas uma ferramenta auxiliar no processo
de avalia¸ao. A qualidade da avalia¸ao depende ao apenas das quest˜oes criadas, mas tamb´em da
forma como ao elaboradas e aplicadas.
´
E fundamental que os professores sejam cuidadosos na
escolha das quest˜oes e na defini¸ao do n´ıvel de dificuldade adequado para cada turma. A utiliza¸ao
do MCTest deve ser sempre acompanhada de uma an´alise cr´ıtica e cuidadosa sobre a adequa¸ao das
quest˜oes e a efetividade do processo de avalia¸ao.
Por fim, espera-se que este documento tenha sido ´util para os professores interessados em
utilizar o MCTest em suas disciplinas. No pr´oximo cap´ıtulo, ser˜ao abordadas quest˜oes param´etricas
que envolvem odigos em Python.
Francisco de Assis Zampirolli MCTest 67
CAP
´
ITULO 4. QUEST
˜
OES EST
´
ATICAS
Figura 4.12: Recorte do PDF gerado da QT de Teste de Mesa.
Francisco de Assis Zampirolli MCTest 68
Cap´ıtulo 5
Quest˜oes param´etricas
Conte´udo
5.1 QM param´etrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.1.1 Um exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.1.2 QM param´etrica no MCTest . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2 QT param´etrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.1 Exemplo 1 Teste de Mesa . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.2 Exemplo 2 Teste de Mesa e gabarito . . . . . . . . . . . . . . . . . . 76
5.2.3 Exemplo 3 Teste de Mesa e gabarito com settrace . . . . . . . . . . 78
5.3 QT param´etrica, com odigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.1 Introdu¸ao ao Moodle e ao VPL . . . . . . . . . . . . . . . . . . . . . . 83
5.3.2 Quest˜ao com exerc´ıcio de programa¸ao no Moodle+VPL . . . . . . . . 85
5.3.3 Quest˜ao com exerc´ıcio de programa¸ao no MCTest+Moodle+VPL . . . 87
5.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
No cap´ıtulo anterior, foi apresentada a cria¸ao de quest˜oes est´aticas de m´ultipla escolha (QMs)
e dissertativas (QTs), incluindo uma quest˜ao t´ıpica utilizada em disciplinas de ogica de programa¸ao
na UFABC, apresentada na Figura 4.12.
´
E poss´ıvel criar essas quest˜oes utilizando L
A
T
E
X, uma lingua-
gem de prepara¸ao de documentos de alta qualidade e profissionalismo, com recursos avan¸cados para
controle de tipos de letra, espa¸camento, numera¸ao de se¸oes, referˆencias bibliogr´aficas e equa¸oes
matem´aticas, entre outros. L
A
T
E
X ´e gratuita e est´a dispon´ıvel para arios sistemas operacionais.
A linguagem L
A
T
E
X foi criada no in´ıcio da ecada de 1980 pelo matem´atico e cientista da
computa¸ao Leslie Lamport (LAMPORT, 1985). Ela ´e baseada no T
E
X, uma linguagem de marca¸ao
desenvolvida por Donald Knuth na ecada de 1970 para produzir documentos com alta qualidade
tipogr´afica para sua erie de livros The Art of Computer Programming”. O T
E
X se tornou popular
para a produ¸ao de documentos cient´ıficos, t´ecnicos e matem´aticos e ainda ´e amplamente utilizado
atualmente.
69
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Para contornar a sintaxe complexa e de dif´ıcil programa¸ao do L
A
T
E
X, no MCTest foi intro-
duzida a possibilidade de intercalar trechos em L
A
T
E
X com trechos de odigo em Python. Python ´e
uma linguagem de programa¸ao de alto n´ıvel, interpretada e de prop´osito geral, criada no in´ıcio da
d´ecada de 1990 por Guido van Rossum, e atualmente ´e uma das linguagens de programa¸ao mais
populares do mundo
1
. Com uma ampla variedade de aplica¸oes em ´areas como desenvolvimento
web, ciˆencia de dados, inteligˆencia artificial e automa¸ao de processos, Python ´e conhecida por sua
sintaxe clara e leg´ıvel, facilitando a escrita e a leitura de odigo.
O MCTest proporciona aos usu´arios a capacidade de criar quest˜oes diversas e param´etricas,
combinando o uso do formato L
A
T
E
X e da linguagem de programa¸ao Python. Essa funcionalidade ser´a
apresentada neste cap´ıtulo. Em cap´ıtulos futuros, na Parte - IV - Experimentos, ser˜ao exploradas
com mais detalhes essa caracter´ıstica fundamental do MCTest de criar quest˜oes param´etricas. Essa
abordagem proporciona maior flexibilidade na cria¸ao de quest˜oes personalizadas e permite uma acil
manipula¸ao dos parˆametros definidos pelos professores. Dessa forma, a cria¸ao de quest˜oes torna-se
mais eficiente e adapt´avel `as necessidades espec´ıficas de cada disciplina.
Apesar dessa possibilidade, muitas vezes a cria¸ao de quest˜oes param´etricas ainda exige ha-
bilidades de programa¸ao por parte do professor. No entanto, quando a um grupo de professores
interessados e uma grande demanda de avalia¸oes para milhares de estudantes, o MCTest oferece a
gest˜ao de avalia¸oes utilizando um banco de quest˜oes que podem ser facilmente reaproveitadas em
avalia¸oes futuras. Essa abordagem a foi avaliada em arias publica¸oes cient´ıficas, demonstrando
eficiˆencia e efic´acia em avalia¸oes, como apresentado em vision.ufabc.edu.br.
5.1 QM param´etrica
A cria¸ao de QMs ´e uma tarefa comum para professores de diversas ´areas do conhecimento.
Para tornar esse processo mais eficiente, ´e poss´ıvel utilizar recursos de programa¸ao. Nesta se¸ao,
ser´a abordada a QM param´etrica, que permite criar quest˜oes com varia¸oes de parˆametros. Isso
possibilita a cria¸ao de in´umeras quest˜oes com facilidade e rapidez. Ser˜ao apresentados exemplos
de como criar quest˜oes param´etricas em Python, utilizando o MCTest como plataforma. Ser˜ao
abordadas diferentes ecnicas de parametriza¸ao, permitindo ao professor escolher a que melhor se
adapta `a sua habilidade em programa¸ao.
5.1.1 Um exemplo
Suponha que vocˆe seja um professor de matem´atica e deseje criar arias QMs sobre a ormula
da ´area do c´ırculo. Embora este exemplo seja bastante simples, ´e poss´ıvel generalizar para quest˜oes
mais complexas. Para alcan¸car esse objetivo, vocˆe pode utilizar o seguinte etodo em Python:
Com base no etodo apresentado no odigo 5.1, ´e poss´ıvel gerar diversas QMs sobre a ´area
do c´ırculo, com as seguintes varia¸oes:
1
Levantamento das linguagens de programa¸ao mais populares em 2023: survey.stackoverflow.co/2023 e
pypl.github.io/PYPL.html.
Francisco de Assis Zampirolli MCTest 70
5.1. QM PARAM
´
ETRICA
odigo: m´etodo area_circulo(raio)
1 import math
2
3 def area_circulo(raio):
4 return math.pi * raio ** 2
odigo 5.1: Exemplo de etodo para calcular a ´area de um c´ırculo.
1. A quest˜ao deve ter 4 alternativas de resposta;
2. O raio do c´ırculo deve variar aleatoriamente;
3. A alternativa correta deve ser calculada com base no valor do raio;
4. As demais alternativas erradas devem ter valores distintos.
A seguir, ser˜ao apresentados trˆes exemplos de quest˜oes para calcular a ´area do c´ırculo, com
raios escolhidos aleatoriamente:
1) Qual ´e a ´area do c´ırculo de raio 2?
A. 3,14 B. 6,28 C. 12,56 D. 25,12
2) Qual ´e a ´area do c´ırculo de raio 4?
A. 12,56 B. 25,12 C. 37,68 D. 50,24
3) Qual ´e a ´area do c´ırculo de raio 3?
A. 9,42 B. 12,56 C. 15,70 D. 18,84
Nos exemplos ilustrativos apresentados, o etodo area_circulo pode ser utilizado para cal-
cular a resposta correta para cada alternativa de resposta. A varia¸ao aleat´oria do raio pode ser
realizada com a ajuda da biblioteca random do Python. Por fim, as alternativas erradas podem ser
calculadas, tamb´em utilizando o m´etodo area_circulo, com base no valor do raio, garantindo a ao
repeti¸ao de alternativas. A seguir, ser´a apresentado esse exemplo implementado no MCTest.
5.1.2 QM param´etrica no MCTest
´
E poss´ıvel parametrizar QMs no MCTest de arias maneiras, dependendo das habilidades de
programa¸ao em Python do professor. Algumas dessas maneiras ao apresentadas nesta se¸ao.
Francisco de Assis Zampirolli MCTest 71
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Observoes:
1. A descri¸ao da quest˜ao no MCTest (campo “Descri¸ao” na Figura 4.7), que pode incluir
textos em L
A
T
E
X integrados com odigos em Python, ´e a parte mais importante na cria¸ao
de quest˜oes param´etricas. A partir deste cap´ıtulo, ao ser´a mais apresentada uma captura
de tela do formul´ario da quest˜ao, como foram realizados nos dois cap´ıtulos anteriores.
Para criar uma QM ou QT param´etrica basta alterar o parˆametro “Param´etrica” de
“N˜ao” para “Sim”, nas telas de cria¸ao ou altera¸ao de quest˜ao;
2. A parte mais complicada na cria¸ao de quest˜oes param´etricas no MCTest ´e lidar com
poss´ıveis erros que podem ser retornados pelo MCTest ao tentar criar o PDF. Para tentar
resolver esse problema, foi criado um notebook no Google Colab, acessado ao clicar no
bot˜ao “Compile-Colab” nas telas de altera¸ao de quest˜ao, como apresentado na Figura
4.7.
Exemplo 1
Veja uma descri¸ao da quest˜ao param´etrica para calcular a ´area de um c´ırculo, implementada
no MCTest, no odigo 5.2. Todo o texto que aparece at´e a linha 6, contendo [[def:, far´a parte do
enunciado da quest˜ao e pode utilizar a sintaxe do L
A
T
E
X. As partes param´etricas deste enunciado
ocorrem nas instru¸oes em Python entre as marca¸oes [[code: e ]]. Geralmente, essas instru¸oes
ao vari´aveis definidas em Python entre as marca¸oes [[def: e ]], neste exemplo, entre as linhas 6
e 30.
Marca¸oes principais definidas no MCTest:
1. Instru¸oes que podem representar a parte param´etrica do enunciado da quest˜ao ao
colocadas entre as marca¸oes [[code: e ]], conforme exemplificado na linha 1 do odigo
5.2;
2. Ap´os esse enunciado, um ´unico bloco de odigo em Python deve ser definido entre as
marca¸oes [[def: e ]], como ilustrado entre as linhas 6 e 30 do exemplo. Todo o texto
ap´os esse bloco ´e descartado do enunciado da quest˜ao.
Se as marca¸oes de in´ıcio e fim de bloco ou instru¸oes aparecerem erroneamente, ou se houver
algum erro no odigo Python, mensagens de erro do compilador Python poder˜ao ser exibidas, mas
sem fornecer muitos detalhes sobre o erro espec´ıfico. Portanto, ´e fundamental testar o odigo Python
fora do MCTest, por exemplo, utilizando o notebook do Google Colab. Para acessar o notebook, basta
clicar no bot˜ao “Compile-Colab” nas telas de altera¸ao de quest˜ao, como mostrado na Figura 4.7.
Experimente adicionar espa¸cos inesperados, como [[code: raio1]] ou [ [code:raio1]], salve e
clique em “Cria-PDF”. Isso permitir´a identificar erros e depurar a quest˜ao no MCTest, seguindo os
seguintes exemplos:
Francisco de Assis Zampirolli MCTest 72
5.1. QM PARAM
´
ETRICA
Alguns exemplos de erros comuns que podem ocorrer:
Experimente incluir esses erros, salve e crie o PDF para identificar e corrigir poss´ıveis problemas
futuros:
1. [[code: raio1]] espa¸co ao esperado retorna:
ERROR in [[code: ... ]]: unmatched ’]’ (<string>, line 1) raio1]]?
2. [[code:Raio1]] “R” mai´usculo retorna:
ERROR in [[code: ... ]]: name ’Raio1’ is not defined Raio1
3. Bloco de odigo no m´etodo area_circulo sem identa¸ao correta retorna:
ERROR in [[def: ... ]]: unexpected indent (<string>, line 7)
4. Sem a linha import math no m´etodo area_circulo retorna:
ERROR in [[def: ... ]]: name ’math’ is not defined
5. Sem os “:” no final da linha do m´etodo area_circulo retorna:
ERROR in [[def: ... ]]: invalid syntax (<string>, line 5)
6. [ [def: ou [[def : espa¸co ao esperado retorna:
ERROR in [[code: ... ]]: name ’raio1’ is not defined raio1
Observe que, nesse sexto caso, o erro retornado ´e que a vari´avel raio1 ao foi definida. Isso
ocorreu porque o MCTest ao encontrou o bloco de odigo Python entre as marca¸oes [[def: e ]].
Certifique-se de ter inclu´ıdo corretamente o bloco de odigo necess´ario para definir a vari´avel raio1
e verifique se ao a erros de digita¸ao ou formata¸ao nas marca¸oes. Essa etapa ´e crucial para
garantir o funcionamento correto da quest˜ao param´etrica no MCTest.
Exemplo 2
Quando as alternativas de uma QM param´etrica assumem apenas valores inteiros, ´e poss´ıvel
utilizar o m´etodo createWrongAnswers desenvolvido e disponibilizado no MCTest. No entanto,
algumas exigˆencias ao necess´arias, como apresentado no odigo 5.3.
Primeiramente, ´e necess´ario criar uma vari´avel global chamada correctAnswer, conforme
mostrado na linha 12 do odigo. Em seguida, atribui-se a resposta correta a essa vari´avel, como
ilustrado na linha 14.
No que diz respeito `as alternativas da quest˜ao, ´e importante incluir na primeira alternativa
o conte´udo da linha 17, sem o coment´ario. Na segunda alternativa, deve-se utilizar o conte´udo da
linha 18, tamb´em sem o coment´ario. Na linha 18, o m´etodo ir´a gerar trˆes valores aleat´orios distintos
entre correctAnswer10 e correctAnswer+10.
´
E importante observar que, nesse caso, as quest˜oes geradas ao ao consideradas “´otimas”,
pois os estudantes podem deduzir que a resposta correta ao est´a nos extremos dos valores fornecidos,
conforme ilustrado na Figura 5.1. Em QMs, o texto em verde (#2450) representa a identifica¸ao da
quest˜ao no banco de dados. Azul (#0) representa a primeira alternativa no formul´ario de cria¸ao
Francisco de Assis Zampirolli MCTest 73
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Quest˜ao:
1 Qual ´e a ´area do ırculo de raio [[code:raio1]]?
2
3 % coment´ario em LaTeX. Observe que a vari´avel raio1, ap´os "code:"
4 % foi definida na linha 15 abaixo
5
6 [[def: # coment´ario em Python
7 # o bloco de odigo Python deve sempre iniciar com a linha anterior!
8 import random
9
10 def area_circulo(raio): # etodo para calcular a ´area do ırculo
11 import math # necess´ario importar biblioteca(s) no etodo
12 return math.pi * raio ** 2
13
14 # lista de 4 raios aleat´orios entre 20 e 50
15 raio1,raio2,raio3,raio4 = random.sample(range(20,51), 4)
16
17 # formata as ´areas com 2 casas decimais
18 area1 = f"{area_circulo(raio1):.2f}"
19 area2 = f"{area_circulo(raio2):.2f}"
20 area3 = f"{area_circulo(raio3):.2f}"
21 area4 = f"{area_circulo(raio4):.2f}"
22
23 # incluir nas alternativas:
24 # [[code:area1]]
25 # [[code:area2]]
26 # [[code:area3]]
27 # [[code:area4]]
28
29 # o bloco de odigo Python deve sempre terminar com a pr´oxima linha
30 ]]
31 Todo o texto que aparece ap´os a linha anterior ´e ignorado.
odigo 5.2: Exemplo de QM param´etrica para calcular a ´area do c´ırculo.
ou altera¸ao da quest˜ao. As demais alternativas em vermelho (*1, *2 e *3) ao as trˆes alternativas
erradas criadas pelo etodo createWrongAnswers.
5.2 QT param´etrica
Os conceitos apresentados anteriormente para as QMs param´etricas ao aplic´aveis tamb´em
`as QTs param´etricas, com a distin¸ao de que ao a necessidade de considerar as alternativas da
quest˜ao. Em vez disso, ´e poss´ıvel definir uma ´unica resposta correta, se necess´ario. Nesta se¸ao,
ser˜ao fornecidos trˆes exemplos adicionais da quest˜ao de teste de mesa introduzida no cap´ıtulo anterior
(Se¸ao 4.3 Quest˜ao dissertativa (QT)), agora sob a perspectiva param´etrica.
No primeiro exemplo, foi criada uma quest˜ao com trˆes parˆametros aleat´orios. No segundo
Francisco de Assis Zampirolli MCTest 74
5.2. QT PARAM
´
ETRICA
Quest˜ao:
1 Qual ´e a ´area do ırculo de raio [[code:raio1]]?
2
3 [[def:
4 import random
5
6 def area_circulo(raio):
7 import math # necess´ario importar biblioteca(s) no etodo
8 return math.pi * raio ** 2
9
10 raio1 = random.randint(10, 51) # sorteia valor entre 10 e 50
11
12 global correctAnswer # vari´avel necess´aria para usar o etodo
13 # createWrongAnswers, a resposta deve ter valor inteiro
14 correctAnswer = int(area_circulo(raio1))
15
16 # incluir nas alternativas da quest~ao:
17 # [[code:correctAnswer]] % primeira alternativa (sempre) correta
18 # [[code:createWrongAnswers([3,10])]] % cria 3 alter. erradas +/- 10
19 ]]
odigo 5.3: Exemplo de QM param´etrica para calcular a ´area do c´ırculo, utilizando o etodo
createWrongAnswers.
Figura 5.1: Recorte do PDF gerado para a quest˜ao definida no odigo 5.3.
exemplo, foi adicionado um gabarito para esses parˆametros aleat´orios, implementando a solu¸ao do
pseudoodigo apresentado em Python e adicionando comandos print em locais estrat´egicos para
imprimir a tabela com o gabarito. Por fim, no ´ultimo exemplo, foi utilizado um recurso avan¸cado de
rastreamento de instru¸oes, etodos e exce¸oes. Esses exemplos mostram o poder da parametriza¸ao
no MCTest para criar quest˜oes personalizadas e detalhadas.
Francisco de Assis Zampirolli MCTest 75
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
5.2.1 Exemplo 1 Teste de Mesa
Nesta se¸ao, ser´a abordada a parametriza¸ao da quest˜ao de teste de mesa ilustrada na Fi-
gura 5.2 e apresentada no odigo 5.4, para exemplificar o processo. As partes param´etricas est˜ao
localizadas nas linhas 7, 8 e 9 da quest˜ao, com os parˆametros N1, N2 e N3, cujos valores ao defi-
nidos aleatoriamente no bloco de odigo Python nas linhas 38, 39 e 40, respectivamente. O PDF
correspondente a essa quest˜ao ´e apresentado na Figura 5.2.
Figura 5.2: Recorte do PDF gerado para a quest˜ao definida no odigo 5.4.
5.2.2 Exemplo 2 Teste de Mesa e gabarito
´
E poss´ıvel aprimorar o exemplo anterior expandindo-o para gerar o gabarito correspondente a
cada valor aleat´orio gerado para as vari´aveis N1, N2 e N3. Para essa finalidade, foi criado um etodo
em Python que implementa o algoritmo da quest˜ao. Devido `a quantidade de linhas na descri¸ao
dessa quest˜ao, os odigos correspondentes foram divididos e est˜ao dispon´ıveis nos fragmentos dos
odigos 5.5 e 5.6.
Nesta nova vers˜ao, o gabarito foi adicionado ao PDF utilizando as linhas 36 a 40 do odigo
5.5. Na linha 36, azul e o tamanho small foram definidos para a vari´avel tabela, conforme mostrado
Francisco de Assis Zampirolli MCTest 76
5.2. QT PARAM
´
ETRICA
Quest˜ao:
1 Preencha a tabela com os valores corretos das vari´aveis contador e soma
2 em cada itera¸c~ao do la¸co. Al´em disso, considere os umeros das linhas do
3 odigo para preencher a tabela, a fim de facilitar a refer^encia. Considere
4 inicialmente N=[[code:N1]], contador=[[code:N2]] e soma=[[code:N3]].
5
6 \begin{verbatim}
7 1. Inicializar a vari´avel N com [[code:N1]]
8 2. Inicializar a vari´avel contador com [[code:N2]]
9 3. Inicializar a vari´avel soma com [[code:N3]]
10 4. Enquanto contador <= N fa¸ca
11 5. Se contador ´e par ent~ao
12 6. soma = soma + contador
13 7. Sen~ao
14 8. soma = soma - contador
15 9. Fim se
16 10. Incrementar contador em 1
17 11. Fim enquanto
18 12. Imprimir o valor da vari´avel soma
19 \end{verbatim}
20
21 \begin{tabular}{|c|c|c|c|}
22 \hline
23 \textbf{linha} & \textbf{contador} & \textbf{soma} \\
24 \hline
25 & & \\ \hline
26 & & \\ \hline
27 & & \\ \hline
28 & & \\ \hline
29 & & \\ \hline
30 & & \\ \hline
31 & & \\ \hline
32 & & \\ \hline
33 & & \\ \hline
34 \end{tabular}
35
36 [[def:
37 import random
38 N1 = random.randint(7,16)
39 N2 = random.randint(1,6)
40 N3 = random.randint(1,5)
41 ]]
odigo 5.4: Exemplo simples de descri¸ao de QT param´etrica para teste de mesa.
na Figura 5.3. Caso o professor ao deseje exibir esse gabarito na folha de atividade, basta utilizar a
cor white. Na linha 38, a vari´avel tabela, sendo uma string, ´e definida na segunda parte do odigo,
no odigo 5.6.
Nesta vers˜ao, foi criado o m´etodo gerar_gabarito para retornar a tabela atualizada para
Francisco de Assis Zampirolli MCTest 77
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
incluir as linhas espec´ıficas do algoritmo com os espa¸cos correspondentes para preencher com os
valores corretos das vari´aveis contador e soma.
O trecho entre as linhas 27 e 31 do odigo 5.6 apresenta um exemplo de uso do odigo, no
qual ao gerados valores aleat´orios para N1, N2 e N3 at´e que a tabela gerada tenha entre 10 e 15 linhas
(exclusivamente). Esse trecho ser´a analisado linha por linha:
while True: isso cria um loop infinito que ser´a executado at´e que a condi¸ao na linha 30 seja
satisfeita e o loop seja interrompido na linha 31;
N1, N2, N3 = random.sample(range(4, 20), 3): aqui ´e usado o etodo sample da biblioteca
random para gerar trˆes valores aleat´orios, sem repeti¸ao, no intervalo de 4 a 19. Esses valores
ao atribu´ıdos `as vari´aveis N1, N2 e N3;
tabela = gerar_gabarito(N1, N2, N3): o m´etodo ´e chamado gerar_gabarito passando os va-
lores aleat´orios N1, N2 e N3 como argumentos. Esse etodo retorna a tabela formatada com os
valores corretos das vari´aveis contador e soma;
if 10 < len(tabela.split('\n')) < 15: break: aqui ´e verificado o n´umero de linhas na tabela
gerada. Se o n´umero de linhas estiver entre 10 e 15 (exclusivamente), a condi¸ao ´e satisfeita e
o loop ´e interrompido com o uso do comando break.
Dessa forma, esse trecho de odigo permite gerar valores aleat´orios para as vari´aveis N1, N2 e
N3 repetidamente at´e que a tabela gerada tenha o n´umero de linhas desejado. Isso garante que todas
as varia¸oes tenham dificuldades de resolu¸ao semelhantes, testando diferentes casos. Neste exemplo
simples, ´e poss´ıvel gerar 15 15 15 varia¸oes, mas apenas aquelas que resultarem em tabelas com
11 a 14 linhas ser˜ao consideradas.
5.2.3 Exemplo 3 Teste de Mesa e gabarito com settrace
Um exemplo avan¸cado de teste de mesa ´e o uso do m´etodo settrace em Python. settrace
´e um etodo da biblioteca sys que permite definir um rastreador de oes ocorridas no odigo. Ele
´e usado para registrar um rastreamento personalizado que ser´a chamado sempre que ocorrer uma
chamada de instru¸ao, retorno de etodo ou exce¸ao.
Ao chamar sys.settrace, ´e poss´ıvel fornecer um rastreamento personalizado que ser´a invo-
cado automaticamente durante a execu¸ao do programa. Esse etodo de rastreamento recebe os
argumentos:
frame: ´e um objeto que representa o quadro de vari´aveis atual em uma pilha;
event: ´e uma string que indica o tipo de evento que ocorreu. Pode ser call (chamada de etodo),
return (retorno de etodo) ou exception (exce¸ao);
arg: ´e um argumento adicional que depende do tipo de evento. Para eventos de chamada e retorno,
´e sempre None. Para eventos de exce¸ao, ´e uma tupla contendo informa¸oes sobre a exce¸ao
disparada.
Francisco de Assis Zampirolli MCTest 78
5.2. QT PARAM
´
ETRICA
Quest˜ao:
1 Preencha a tabela com os valores corretos das vari´aveis contador e soma
2 em cada itera¸c~ao do la¸co. Al´em disso, considere os umeros das linhas do
3 odigo para preencher a tabela, a fim de facilitar a refer^encia. Considere
4 inicialmente N=[[code:N1]], contador=[[code:N2]] e soma=[[code:N3]].
5
6 \begin{verbatim}
7 1. Inicializar a vari´avel N com [[code:N1]]
8 2. Inicializar a vari´avel contador com [[code:N2]]
9 3. Inicializar a vari´avel soma com [[code:N3]]
10 4. Enquanto contador <= N fa¸ca
11 5. Se contador ´e par ent~ao
12 6. soma = soma + contador
13 7. Sen~ao
14 8. soma = soma - contador
15 9. Fim se
16 10. Incrementar contador em 1
17 11. Fim enquanto
18 12. Imprimir o valor da vari´avel soma
19 \end{verbatim}
20
21 \begin{tabular}{|c|c|c|c|}
22 \hline
23 \textbf{linha} & \textbf{contador} & \textbf{soma} \\
24 \hline
25 & & \\ \hline
26 & & \\ \hline
27 & & \\ \hline
28 & & \\ \hline
29 & & \\ \hline
30 & & \\ \hline
31 & & \\ \hline
32 & & \\ \hline
33 & & \\ \hline
34 \end{tabular}
35
36 {\color{blue} {\small
37 \begin{verbatim}
38 [[code:tabela]]
39 \end{verbatim}
40 }}
odigo 5.5: Exemplo pr´atico de teste de mesa param´etrico mostrando o gabarito Parte 1: Descri¸ao
de quest˜ao.
O etodo de rastreamento personalizado pode realizar arias oes, como exibir informa¸oes
sobre as chamadas de etodos, coletar dados de execu¸ao, fazer an´alises dinˆamicas, entre outros.
´
E
uma ferramenta poderosa para depurar e analisar o fluxo de execu¸ao de um programa Python.
´
E importante mencionar que o uso de sys.settrace pode ter um impacto significativo no
Francisco de Assis Zampirolli MCTest 79
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Quest˜ao:
1 [[def:
2 import random
3
4 def gerar_gabarito(N1, N2, N3):
5 s = "Linha\tContador\tSoma\n"
6 s += "--------------------\n"
7
8 contador = N2
9 s += f" 2 {contador:7d}\n"
10 soma = N3
11 s += f" 3 {contador:7d} {soma:6d}\n"
12
13 while contador <= N1:
14 if contador % 2 == 0:
15 soma = soma + contador
16 s += f" 6 {contador:7d} {soma:6d}\n"
17 else:
18 soma = soma - contador
19 s += f" 8 {contador:7d} {soma:6d}\n"
20
21 contador += 1
22 s += f" 10 {contador:7d} {soma:6d}\n"
23
24 return s
25
26 # Exemplo de uso:
27 while True:
28 N1, N2, N3 = random.sample(range(4, 20), 3)
29 tabela = gerar_gabarito(N1, N2, N3)
30 if 10 < len(tabela.split('\n')) < 15:
31 break
32 ]]
odigo 5.6: Exemplo pr´atico de teste de mesa param´etrico mostrando o gabarito Parte 2: Bloco
de odigo em Python.
desempenho do programa, uma vez que o m´etodo de rastreamento ´e chamado em cada evento de cha-
mada, retorno ou exce¸ao. Portanto, ´e recomendado us´a-lo com cuidado e apenas quando necess´ario
para fins de depura¸ao ou an´alise.
Exemplo de uso do etodo settrace para rastreamento de odigo
O odigo 5.7 define o etodo trace para ser chamada sempre que ocorrer um evento es-
pec´ıfico, como a execu¸ao de uma linha de odigo. Neste m´etodo, as informa¸oes relevantes ao
impressas no console, ap´os a sua execu¸ao, como o evento, o n´umero da linha e as vari´aveis locais.
Em seguida, o etodo gerar_gabarito ´e definido para calcular a soma ou subtra¸ao com contador
par e ´ımpar, respectivamente, em um determinado intervalo. O m´etodo ´e chamado com os argumen-
Francisco de Assis Zampirolli MCTest 80
5.2. QT PARAM
´
ETRICA
tos 9, 7 e 6 para os parˆametros N1, contador e soma, respectivamente. Por fim, o etodo trace ´e
desativado na linha 16. Este odigo ´e um exemplo de como usar o recurso de rastreamento em Python
para depurar o odigo e entender como as vari´aveis ao alteradas durante a execu¸ao. O odigo rastre-
ado ao possui sa´ıda, mas o rastreamento pode ser modificado para imprimir informa¸oes adicionais
ou para armazenar informa¸oes em um arquivo de log.
Quest˜ao:
1 def trace(frame, event, arg_unused):
2 print(event, frame.f_lineno, frame.f_locals)
3 return trace
4
5 def gerar_gabarito(N1, contador, soma):
6 while contador <= N1:
7 if contador % 2 == 0:
8 soma = soma + contador
9 else:
10 soma = soma - contador
11 contador += 1
12
13 import sys
14 sys.settrace(trace)
15 gerar_gabarito(9, 7, 6)
16 sys.settrace(None)
odigo 5.7: Exemplo de uso de sys.settrace.
Ao salvar o odigo 5.7 no arquivo trace.py e execut´a-lo no console do computador usando
o comando python trace.py, a sa´ıda resultante ser´a semelhante ao apresentado a seguir:
Sa´ıda do odigo 5.7:
1 call 7 {'N1': 9, 'contador': 7, 'soma': 6}
2 line 8 {'N1': 9, 'contador': 7, 'soma': 6}
3 line 9 {'N1': 9, 'contador': 7, 'soma': 6}
4 line 12 {'N1': 9, 'contador': 7, 'soma': 6}
5 line 13 {'N1': 9, 'contador': 7, 'soma': -1}
6 line 8 {'N1': 9, 'contador': 8, 'soma': -1}
7 line 9 {'N1': 9, 'contador': 8, 'soma': -1}
8 line 10 {'N1': 9, 'contador': 8, 'soma': -1}
9 line 13 {'N1': 9, 'contador': 8, 'soma': 7}
10 line 8 {'N1': 9, 'contador': 9, 'soma': 7}
11 line 9 {'N1': 9, 'contador': 9, 'soma': 7}
12 line 12 {'N1': 9, 'contador': 9, 'soma': 7}
13 line 13 {'N1': 9, 'contador': 9, 'soma': -2}
14 line 8 {'N1': 9, 'contador': 10, 'soma': -2}
15 return 8 {'N1': 9, 'contador': 10, 'soma': -2}
Francisco de Assis Zampirolli MCTest 81
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
´
E poss´ıvel formatar essa sa´ıda e gerar uma quest˜ao completa no MCTest, conforme demons-
trado a seguir.
Teste de mesa com rastreamento de odigo usando settrace
Neste terceiro exemplo de teste de mesa param´etrico, ´e utilizado o m´etodo settrace, da bibli-
oteca sys, para gerar o gabarito. A vantagem dessa vers˜ao em rela¸ao `a anterior ´e que pode-se criar
o gabarito sem precisar incluir arios comandos print na implementa¸ao do pseudoodigo, tornando
o processo mais gen´erico para diferentes exemplos de teste de mesa. A seguir, ser˜ao adaptadas as
vers˜oes anteriores, criando um odigo em Python que faz parte do enunciado da quest˜ao, apresentado
no odigo 5.8. No entanto, tamb´em ´e poss´ıvel ter utilizado um pseudoodigo.
A parte com diferen¸cas significativas em rela¸ao `as anteriores ´e apresentada no odigo 5.9.
Nessa parte, o m´etodo trace ´e adaptado, conforme apresentado no odigo 5.7, para formatar a
tabela com o gabarito. Dentro desse etodo, ´e verificado se o evento atual ´e uma linha de odigo
(event == 'line'). Em caso afirmativo, o etodo obt´em o n´umero da linha atual (lineno) e o
dicion´ario de vari´aveis locais (locals_dict) do frame atual.
Em seguida, o etodo obt´em os valores das vari´aveis contador e soma do dicion´ario de
vari´aveis locais, usando o m´etodo get. Esses valores ao usados para criar uma string formatada,
armazenada em uma lista chamada output.
Por fim, o m´etodo retorna a si (return trace), o que permite que seja chamado novamente
no pr´oximo evento de linha. Esse processo se repete at´e que a execu¸ao do programa seja conclu´ıda
ou at´e encontrar o comando sys.settrace(None), que encerra o rastreamento.
Al´em disso, o odigo apresenta o m´etodo gerar_gabarito, semelhante ao apresentado no
odigo 5.7. Em seguida, o trecho de odigo inicia um loop infinito que realiza as seguintes oes:
gera trˆes n´umeros aleat´orios distintos em um intervalo espec´ıfico, inicializa uma lista vazia chamada
output e adiciona cabcalhos e uma linha de separa¸ao `a lista. Em seguida, o rastreamento do
odigo ´e iniciado com sys.settrace(trace), o m´etodo gerar_gabarito ´e executado com os valores
gerados e o rastreamento ´e finalizado com sys.settrace(None). A lista output ´e convertida em
uma ´unica string chamada tabela. O odigo verifica se o n´umero de linhas na tabela est´a entre 11
e 14. Se a condi¸ao for satisfeita, o loop ´e interrompido e o programa ´e finalizado. Essa estrutura de
repeti¸ao permite gerar e obter uma tabela com um umero espec´ıfico de linhas no intervalo desejado.
5.3 QT param´etrica, com odigo
Nesta se¸ao, ao abordadas QTs param´etricas que envolvem odigo, introduzindo o ambiente
Moodle e VPL. Em seguida, ´e apresentado um exemplo de atividade que combina essas duas fer-
ramentas. Posteriormente, ´e fornecido um exemplo de atividade que utiliza a combina¸ao MCTest,
Moodle e VPL.
Francisco de Assis Zampirolli MCTest 82
5.3. QT PARAM
´
ETRICA, COM C
´
ODIGO
Quest˜ao:
1 Preencha a tabela com os valores corretos das vari´aveis contador e soma
2 em cada itera¸c~ao do la¸co, para valores de entrada espec´ıficos do etodo.
3 Al´em disso, considere os umeros das linhas do odigo para preencher a
4 tabela, a fim de facilitar a refer^encia. Considere inicialmente
5 N1=[[code:N1]], contador=[[code:N2]] e soma=[[code:N3]].
6
7 \begin{verbatim}
8 1. def gerar_gabarito(N1, contador, soma):
9 2. while contador <= N1:
10 3. if contador % 2 == 0:
11 4. soma = soma + contador
12 5. else:
13 6. soma = soma - contador
14 7. contador += 1
15 \end{verbatim}
16
17 \begin{tabular}{|c|c|c|c|}
18 \hline
19 \textbf{linha} & \textbf{contador} & \textbf{soma} \\
20 \hline
21 & & \\ \hline
22 & & \\ \hline
23 & & \\ \hline
24 & & \\ \hline
25 & & \\ \hline
26 & & \\ \hline
27 & & \\ \hline
28 & & \\ \hline
29 & & \\ \hline
30 \end{tabular}
31
32 {\color{blue} {\small
33 \begin{verbatim}
34 [[code:tabela]]
35 \end{verbatim}
36 }}
odigo 5.8: Exemplo pr´atico de teste de mesa param´etrico utilizando sys.settrace Parte 1:
Descri¸ao de quest˜ao.
5.3.1 Introdu¸ao ao Moodle e ao VPL
O Moodle ´e uma plataforma de aprendizagem online amplamente utilizada em institui¸oes de
ensino em todo o mundo. Ela oferece recursos abrangentes para apoiar o ensino e a aprendizagem,
incluindo a capacidade de criar e disponibilizar atividades interativas para os estudantes. Um dos
plugins populares do Moodle ´e o VPL (Virtual Programming Lab) (PINO; ROYO; FIGUEROA,
2012), desenvolvido especialmente para a corre¸ao autom´atica de exerc´ıcios de programa¸ao (EPs).
O plugin VPL permite que os professores criem EPs e ofere¸cam aos estudantes um ambiente
Francisco de Assis Zampirolli MCTest 83
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Quest˜ao:
1 [[def:
2 import random, sys
3 global trace
4
5 def trace(frame, event, arg_unused):
6 global output
7 if event == 'line':
8 lineno = frame.f_lineno # pega a linha
9 locals_dict = frame.f_locals # pega todas as vari´aveis locais
10 contador = locals_dict.get('contador') # pega a vari´avel contador
11 soma = locals_dict.get('soma') # pega a vari´avel soma
12 output.append(f"{lineno-16:3d} {contador:7d} {soma:7d}\n")
13 # armazena a string na lista
14 return trace
15
16 def gerar_gabarito(N1, soma, contador):
17 while contador <= N1:
18 if contador % 2 == 0:
19 soma = soma + contador
20 else:
21 soma = soma - contador
22 contador += 1
23
24 # Exemplo de uso:
25 while True:
26 N1, N2, N3 = random.sample(range(4, 20), 3)
27 output = []
28 output.append("Linha Contador Soma\n")
29 output.append("---------------------\n")
30 sys.settrace(trace) # Inicializa o rastreamento
31 gerar_gabarito(N1, N2, N3)
32 sys.settrace(None) # Finaliza o rastreamento
33 tabela = ''.join(output) # converte a lista de strings em uma string
34 if 10 < len(tabela.split('\n')) < 15:
35 break
36 ]]
odigo 5.9: Exemplo pr´atico de teste de mesa param´etrico utilizando sys.settrace Parte 2: Bloco
de odigo em Python.
virtual para escrever e testar seu odigo. Essa ferramenta ´e particularmente ´util em disciplinas de
programa¸ao, onde os estudantes precisam praticar e aprimorar suas habilidades de codifica¸ao.
O VPL oferece recursos avan¸cados de avalia¸ao e corre¸ao autom´atica. Os estudantes podem
enviar seus odigos para o sistema, e o VPL executar´a testes automatizados para verificar se o odigo
produz os resultados esperados. Os resultados ao fornecidos instantaneamente, permitindo que os
estudantes identifiquem onde cometeram erros e onde podem melhorar.
Al´em disso, o VPL permite que os professores configurem casos de teste personalizados para
Francisco de Assis Zampirolli MCTest 84
5.3. QT PARAM
´
ETRICA, COM C
´
ODIGO
verificar a corre¸ao dos programas dos estudantes. Isso significa que os professores podem criar
uma variedade de exerc´ıcios e testes para avaliar a compreens˜ao e a habilidade dos estudantes em
diferentes aspectos da programa¸ao.
O uso do VPL no Moodle traz diversos benef´ıcios. Ele promove a pr´atica ativa e produz
feedback imediato aos estudantes, permitindo que eles experimentem e aprendam com seus erros.
Al´em disso, o VPL agiliza o processo de corre¸ao, liberando mais tempo para que os professores se
concentrem em fornecer orienta¸ao e apoio individualizado aos estudantes.
5.3.2 Quest˜ao com exerc´ıcio de programa¸ao no Moodle+VPL
Nesta se¸ao, ser´a apresentada uma QT que requer a solu¸ao utilizando o plugin VPL do
Moodle. Esse tipo de quest˜ao ´e definido neste livro como EP. O estudante ´e solicitado a inserir o
odigo na atividade correspondente do Moodle, utilizando uma linguagem de programa¸ao definida
pelo professor.
´
E importante destacar que a quest˜ao apresentada a seguir ao ´e param´etrica, embora
possua diferentes casos de teste.
Um exemplo de atividade Moodle+VPL
Escreva um programa em Python para calcular o fatorial de um n´umero inteiro fornecido pelo
usu´ario.
Instru¸oes
Aqui est´a um exemplo de quest˜ao de EP no Moodle usando a linguagem Python para calcular
o fatorial de um n´umero:
1. Acesse o Moodle e a para a disciplina em que deseja adicionar a quest˜ao;
2. Clique em “Atividades” e selecione “Laborat´orio Virtual de Programa¸ao” para criar uma nova
atividade VPL;
3. Preencha os detalhes da atividade, como nome, descri¸ao e pontua¸ao. Finalize salvando e mos-
trando a atividade. Em seguida, clique no ´ıcone de engrenagem para acessar as configura¸oes
avan¸cadas da atividade e siga os pr´oximos passos;
4. Na se¸ao “Op¸oes de execu¸ao”, selecione a linguagem “Python” como “Script de execu¸ao”,
deixando apenas “Avaliar” e “Atribui¸ao autom´atica de nota” como “Sim”, por exemplo;
5. Na se¸ao “Casos de teste”, vocˆe pode definir os casos de teste da seguinte maneira:
Francisco de Assis Zampirolli MCTest 85
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Arquivo com os casos de teste:
case=caso1
input=5
output="O fatorial de 5 ´e 120."
output="O fatorial de 5 ´e 120"
case=caso2
input=10
output="O fatorial de 10 ´e 3628800."
output="O fatorial de 10 ´e 3628800"
6. Na se¸ao “Arquivo de execu¸ao”, vocˆe pode deixar em branco, pois ao ´e necess´ario altera¸oes
neste exemplo.
O odigo 5.10 apresenta um etodo em Python para calcular o fatorial de um n´umero. O
fatorial de um n´umero ´e o produto de todos os n´umeros inteiros positivos de 1 at´e esse n´umero.
O etodo fatorial(n) recebe um n´umero n como parˆametro. Ele verifica se n ´e igual a
zero. Se for, retorna 1, pois o fatorial de 0 ´e definido como 1. Caso contr´ario, o etodo calcula o
fatorial de n multiplicando n pelo fatorial de n-1 (ou seja, o fatorial do n´umero anterior). Isso ´e feito
recursivamente at´e chegar ao caso base do fatorial de 0.
Em seguida, o programa solicita ao usu´ario que digite um n´umero inteiro. Esse n´umero
´e armazenado na vari´avel numero. O programa ent˜ao chama o etodo fatorial(numero) para
calcular o fatorial desse n´umero e armazena o resultado na vari´avel resultado. Por fim, o programa
exibe a frase "O fatorial de" seguida do n´umero digitado pelo usu´ario e do resultado calculado.
odigo: Exemplo de uso de atividade Moodle+VPL
1 def fatorial(n):
2 if n == 0:
3 return 1
4 else:
5 return n * fatorial(n - 1)
6
7 numero = int(input("Digite um umero inteiro: "))
8 resultado = fatorial(numero)
9 print("O fatorial de", numero, e", resultado, ".")
odigo 5.10: Programa em Python para alculo do fatorial.
Avalia¸ao
A pontua¸ao para esta quest˜ao ser´a baseada no programa fornecido pelo estudante para ler
as entradas, calcular o fatorial e produzir as sa´ıdas esperadas para os casos de teste fornecidos. Se
Francisco de Assis Zampirolli MCTest 86
5.3. QT PARAM
´
ETRICA, COM C
´
ODIGO
o estudante fornecer apenas uma sa´ıda fixa, como print("O fatorial de 5 ´e 120."), a quest˜ao
receber´a uma nota de 50%.
Portanto, ´e importante incluir uma variedade de casos de teste para avaliar corretamente o
programa e identificar poss´ıveis tentativas de trapassa. Quanto mais casos de teste forem utilizados,
melhor ser´a a avalia¸ao, uma vez que aumenta a chance de identificar solu¸oes corretas e detectar
respostas fixas ou incorretas.
5.3.3 Quest˜ao com exerc´ıcio de programa¸ao no MCTest+Moodle+VPL
Esse tipo de quest˜ao, utilizando EP no MCTest+Moodle+VPL, apresenta dois desafios devido
`a falta de integra¸ao atual entre os bancos de dados do MCTest e do Moodle.
Primeiro desafio
O primeiro desafio consiste em definir a varia¸ao da atividade para cada estudante, uma vez
que as atividades podem ser individuais. Para solucionar esse problema, o MCTest gera um arquivo
no formato CSV chamado students_variations.csv, contendo o nome do estudante e a varia¸ao
atribu´ıda. Esse arquivo deve ser inserido no campo “Arquivo de execu¸ao” da atividade VPL no
Moodle. Al´em disso, existem arios outros arquivos dispon´ıveis no GitHub, detalhados em cap´ıtulos
futuros deste livro, que tamb´em devem ser inclu´ıdos nesse campo. A vers˜ao utilizada neste livro est´a
na pasta V10-new selector do GitHub.
Aten¸ao:
´
E importante destacar que a busca pela varia¸ao do estudante deve ser realizada pelo nome
e sobrenome do estudante no arquivo students_variations.csv, sendo necess´ario que esses
dados sejam idˆenticos tanto no MCTest quanto no Moodle. Em vers˜oes recentes do VPL,
tamb´em ´e poss´ıvel utilizar o e-mail do estudante, o que representar´a uma melhoria futura
nesse processo.
Segundo desafio
O segundo desafio, ainda mais cr´ıtico, envolve a defini¸ao dos casos de teste para cada varia¸ao
da quest˜ao. Esse desafio ´e enfrentado atrav´es da gera¸ao do arquivo linker.json pelo MCTest, no
formato JSON. Esse arquivo cont´em as varia¸oes da atividade, incluindo as quest˜oes e seus respectivos
casos de teste. Nesta se¸ao, ser´a abordado o processo de cria¸ao de uma QT param´etrica de EP no
MCTest+Moodle+VPL. No entanto, ´e importante ressaltar que todos os detalhes desse processo
ser˜ao abordados em cap´ıtulos futuros, uma vez que os arquivos CSV e JSON ao gerados ao criar
um exame no MCTest, especificamente no Cap´ıtulo 10 Exames com MCTest+Moodle+VPL.
Francisco de Assis Zampirolli MCTest 87
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Um exemplo simples de alculo de parcelas sem juros
O VPL considera cada linha como uma entrada de dados de um programa. No Python, essa
entrada ´e capturada utilizando o comando input(), que recebe um texto. Por exemplo, o texto
"5003.9\n10\n" cont´em duas entradas. Para uma quest˜ao de parcelas sem juros, ´e poss´ıvel ter duas
entradas e uma sa´ıda de dados no odigo 5.11 em Python, que pode ser testado em uma atividade
VPL no Moodle. Nesse exemplo, o programa captura o valor total e o umero de parcelas informados
odigo: Exemplo de uso de atividade Moodle+VPL Parcelas
1 valor_total = float(input())
2 parcelas = int(input())
3
4 valor_parcela = valor_total / parcelas
5
6 print(f"{valor_parcela:.2f}")
odigo 5.11: Programa em Python para alculo de parcelas.
pelo usu´ario e calcula o valor de cada parcela. Em seguida, exibe o resultado utilizando o comando
print, formatando com duas casas decimais.
O MCTest pode gerar automaticamente diversos casos de teste, seguindo uma estrutura es-
pec´ıfica de dicion´ario de dados. Por exemplo, a seguir est˜ao apresentados dois casos de teste criados
no MCTest para o exemplo de alculo de parcelas sem juros:
Dicion´ario usado no MCTest contendo os casos de teste:
moodle_cases = {
"input": ["5009.4\n10\n", "5003.9\n10\n"],
"output": ["500.94", "500.39"]
}
Esse dicion´ario ser´a formatado no arquivo linker.json, que ser´a tratado por arios arquivos
que dever˜ao ser inseridos em “Arquivos de execu¸ao”, em uma atividade VPL no Moodle, que pode
ser equivalente aos seguintes casos de teste.
Francisco de Assis Zampirolli MCTest 88
5.3. QT PARAM
´
ETRICA, COM C
´
ODIGO
Arquivo com os casos de teste:
case=caso1
input=5009.4
10
output=500.94
case=caso2
input=5003.9
10
output=500.39
Para realizar essa tarefa, na descri¸ao da quest˜ao no MCTest, ´e necess´ario incluir um trecho
de odigo utilizando o comando comment que contenha apenas o dicion´ario de casos de teste. Esse
trecho indica ao gerador MCTest para incluir os casos de teste no arquivo linker.json, que ser´a
importado no Moodle.
Criando uma QT param´etrica para integra¸ao MCTest+Moodle+VPL
A seguir, ser´a apresentado um exemplo completo de odigo para essa quest˜ao de parcelas
sem juros, onde as vari´aveis e instru¸oes em Python est˜ao entre os marcadores [[code: e ]]. Essas
vari´aveis devem ser criadas no bloco de odigo Python definido entre os marcadores [[def: e ]].
Para criar quest˜oes param´etricas, ao apenas nos casos de teste, ´e necess´ario incluir vari´aveis
aleat´orias no enunciado da quest˜ao entre [[code: e ]]. No exemplo das parcelas sem juros, foi
inclu´ıdo no enunciado o n´umero de parcelas, sendo utilizado apenas o valor da compra como entrada
para o caso de teste.
Aten¸ao:
Para garantir que cada estudante receba uma quest˜ao diferente, ´e necess´ario incluir o maior
n´umero poss´ıvel de vari´aveis aleat´orias no enunciado. Por exemplo, ao lidar com um problema
de parcelas sem juros, ´e poss´ıvel adicionar vari´aveis aleat´orias como o nome do cliente, o
produto em quest˜ao, entre outros. Al´em disso, ´e importante que esses dados sejam impressos
na sa´ıda esperada para os casos de teste. Caso contr´ario, um mesmo odigo pode funcionar
para todas as varia¸oes de atividade, ignorando a necessidade de m´ultiplos casos de teste.
No odigo 5.12, ´e apresentado o enunciado da quest˜ao, incluindo a parcela como parte pa-
ram´etrica. Tamb´em ´e inclu´ıdo o primeiro caso de teste como exemplo no enunciado. Essa primeira
parte ´e finalizada com o bloco comment, necess´ario para o MCTest entender que se trata de uma
quest˜ao onde o estudante deve resolver como uma atividade VPL no Moodle.
A segunda parte da quest˜ao apresentada no odigo 5.12 ´e fornecida no odigo 5.13, que
cont´em o bloco de odigo Python que define a parte param´etrica, incluindo o dicion´ario moodle_cases
que cont´em os casos de teste.
O odigo 5.13 consiste em quatro passos principais. No Passo 1, um n´umero inteiro aleat´orio
Francisco de Assis Zampirolli MCTest 89
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Quest˜ao:
1 Escreva um programa que auxilia uma loja na hora de efetuar uma venda. Seu
2 programa deve perguntar o pre¸co do produto e considerar que a loja parcela
3 este pre¸co em somente em [[code:parcelas]] parcelas (sem juros). O seu
4 programa deve mostrar quanto ser´a o valor de uma parcela (arredondando
5 para duas casas decimais apenas). Veja exemplo a seguir: \\
6
7 \noindent\textbf{Exemplo de Entrada:}
8 \begin{verbatim}
9 [[code:caso0_inp]]
10 \end{verbatim}
11
12 \noindent\textbf{Exemplo de Sa´ıda:}
13 \begin{verbatim}
14 [[code:caso0_out]]
15 \end{verbatim}
16
17 % necess´ario para gerar casos de testes no moodle
18 \begin{comment}
19 [[code:moodle_cases]]
20 \end{comment}
odigo 5.12: Exemplo de QT param´etrica utilizando MCTest+Moodle+VPL Parte 1: Descri¸ao
de quest˜ao.
entre 8 e 19 ´e gerado, representando o n´umero de parcelas em uma QT param´etrica. No Passo 2,
os casos de teste ao criados. Para cada caso de teste, um valor aleat´orio para o pre¸co do produto ´e
gerado e as entradas e sa´ıdas correspondentes ao formatadas. No Passo 3, um dicion´ario contendo os
casos de teste ´e criado e convertido para o formato JSON. Por fim, no Passo 4, um exemplo de caso
de teste ´e mostrado no enunciado da quest˜ao. Esse odigo permite gerar casos de teste e parˆametros
para quest˜oes param´etricas, proporcionando varia¸ao nos valores dos testes e facilitando a cria¸ao de
quest˜oes personalizadas.
´
E importante testar o odigo em uma IDE antes de utiliz´a-lo no MCTest.
Aten¸ao:
Dentre os quatro passos apresentados, o professor precisa apenas modificar o Passo 1, onde os
parˆametros do enunciado da quest˜ao ao definidos. Al´em disso, o trecho entre #>>>> e #<<<<
deve ser alterado para criar diferentes casos de teste. Essas modifica¸oes permitem criar outras
quest˜oes param´etricas, com varia¸oes nos parˆametros e nos casos de teste, tornando o processo
de cria¸ao mais flex´ıvel e personalizado.
Veja o resultado desta quest˜ao criada no MCTest ap´os clicar em “Criar-PDF” na Figura 5.5.
Observa-se que, na descri¸ao da quest˜ao, ´e exibido Integration: Moodle+VPL, indicando que o
MCTest reconheceu essa quest˜ao como uma tarefa que o estudante deve realizar em uma atividade
VPL no ambiente do Moodle, devido ao reconhecimento do comando command no enunciado da
quest˜ao.
Francisco de Assis Zampirolli MCTest 90
5.3. QT PARAM
´
ETRICA, COM C
´
ODIGO
Quest˜ao:
1 [[def:
2 # Antes de prosseguir, ´e recomendado testar o trecho de odigo
3 # Python a seguir em uma IDE para garantir seu funcionamento correto.
4 import json
5 import numpy as np # uso da biblioteca numpy para gerar umero aleat´orio
6
7 # Passo 1: Criar os par^ametros do enunciado da quest~ao
8 parcelas = np.random.randint(8,20)
9
10 # Passo 2: Criar os casos de teste
11 inp_list, out_list = [], [] # Listas vazias para armazenar os casos de teste
12 casos_teste = 2 # umero de casos de teste desejado
13 # Aumentar esse umero ap´os validar a quest~ao tamb´em na atividade VPL do Moodle
14
15 # Para cada caso de teste:
16 for i in range(casos_teste):
17
18 #>>>> begin - casos de teste
19 # Gerar um valor aleat´orio para o pre¸co do produto
20 valor_total = np.random.randint(100)/10 + 5001
21
22 # Criar a entrada do caso de teste como uma string
23 inp = str(valor_total)+'\n'
24
25 # Calcular o valor da parcela arredondado para duas casas decimais
26 out = f'{(valor_total/parcelas):.2f}'
27 #<<<< end - casos de teste
28
29 # Adicionar a entrada e sa´ıda do caso de teste `as listas
30 inp_list.append(inp)
31 out_list.append(out)
32
33 # Passo 3: Criar o dicion´ario com os casos de teste
34 cases = {}
35 cases['input'] = np.array(inp_list).tolist()
36 cases['output'] = np.array(out_list).tolist()
37 moodle_cases = json.dumps(cases)
38
39 # Passo 4: Mostrar um exemplo no enunciado da quest~ao
40 caso0_inp = cases['input'][0]
41 caso0_out = cases['output'][0]
42
43 #print(moodle_cases) # para testar em uma IDE
44 ]]
odigo 5.13: Exemplo de QT param´etrica utilizando MCTest+Moodle+VPL Parte 2: Bloco de
odigo em Python.
Francisco de Assis Zampirolli MCTest 91
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
5.4 Considera¸oes finais
Neste cap´ıtulo, foram exploradas algumas possibilidades de cria¸ao de quest˜oes param´etricas
no MCTest, combinando recursos de L
A
T
E
X e Python. Foram apresentados exemplos simples, mas ´e
importante ressaltar que ´e poss´ıvel criar quest˜oes param´etricas muito mais complexas, dependendo
da criatividade do professor. Essa capacidade de cria¸ao personalizada ´e uma das partes mais im-
portantes do MCTest, ao permitir a gera¸ao e compartilhamento de quest˜oes para os mais diferentes
fins.
Embora a cria¸ao de quest˜oes param´etricas possa exigir habilidades de programa¸ao por parte
dos professores, o MCTest oferece a vantagem de gerenciar avalia¸oes com um banco de quest˜oes
reutiliz´aveis. Isso ´e especialmente ´util quando a um grupo de professores interessados e uma grande
demanda de avalia¸oes para milhares de estudantes.
No caso das QMs param´etricas, foram apresentados exemplos de como criar quest˜oes com
varia¸oes de parˆametros, permitindo a gera¸ao acil e apida de in´umeras quest˜oes. Tamem foram
discutidas diferentes t´ecnicas de parametriza¸ao, oferecendo ao professor a liberdade de escolher a
que melhor se adapta `as suas habilidades de programa¸ao.
Em rela¸ao `as QTs param´etricas, foram destacados que os conceitos e t´ecnicas apresentados
para as QMs tamb´em se aplicam a esse tipo de quest˜ao. No entanto, nas QTs, ao ´e preciso se
preocupar com as alternativas. Foram apresentados exemplos de quest˜oes param´etricas onde os
parˆametros foram variados, permitindo uma ampla gama de varia¸oes para os estudantes.
Por fim, foram abordadas QTs param´etricas que envolvem odigo e introduzido o ambi-
ente Moodle e o plugin VPL. Mostrou-se como criar quest˜oes de EPs utilizando o Moodle+VPL
e discutiram-se os benef´ıcios dessa abordagem, incluindo a pr´atica ativa, o feedback imediato e a
agilidade na corre¸ao. Tamb´em foram mencionados os desafios de integrar o MCTest, Moodle e VPL
para quest˜oes param´etricas de EP. A combina¸ao dessas ferramentas oferece aos professores uma po-
derosa maneira de criar e avaliar quest˜oes param´etricas personalizadas, enriquecendo a experiˆencia
de aprendizagem dos estudantes.
Francisco de Assis Zampirolli MCTest 92
5.4. CONSIDERAC¸
˜
OES FINAIS
Figura 5.3: Recorte do PDF gerado para a quest˜ao definida nos odigos 5.5 e 5.6.
Francisco de Assis Zampirolli MCTest 93
CAP
´
ITULO 5. QUEST
˜
OES PARAM
´
ETRICAS
Figura 5.4: Recorte do PDF gerado para a quest˜ao definida nos odigos 5.8 e 5.9.
Figura 5.5: Recorte do PDF gerado para a QT definida nos odigos 5.12 e 5.13.
Francisco de Assis Zampirolli MCTest 94
Parte III
Exames no MCTest
Conte´udo
6 Vis˜ao geral dos exames 97
7 Exames com Quadro de Respostas (QR) 109
8 Exames com QR+QM e/ou QT 121
9 Varia¸oes de exames com QM+QT para o Moodle 133
10 Exames com MCTest+Moodle+VPL 151
95
Francisco de Assis Zampirolli MCTest 96
Cap´ıtulo 6
Vis˜ao geral dos exames
Conte´udo
6.1 Acesso `a tela de exames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2 Recorte I da tela de exame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.2.1
´
Area `a esquerda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.2
´
Area central . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.2.3
´
Area `a direita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.3 Recorte II da tela de exame turmas . . . . . . . . . . . . . . . . . . . . . . . 103
6.4 Recorte III da tela de exame quest˜oes . . . . . . . . . . . . . . . . . . . . . . 103
6.5 Recorte IV da tela de exame configurando os detalhes . . . . . . . . . . . . . 104
6.6 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
A realiza¸ao dos exames desempenha um papel fundamental no MCTest, sendo o elemento
central do sistema. Nessa etapa, ´e poss´ıvel ter a flexibilidade de incluir uma ou arias turmas
de estudantes em um exame, selecionar as quest˜oes que far˜ao parte dele, decidir sobre o formato
de impress˜ao (como uma quest˜ao por folha ou de maneira ecologicamente sustent´avel, com arias
quest˜oes por folha), determinar a quantidade de varia¸oes a serem criadas e escolher se o exame ser´a
impresso ou enviado por e-mail aos estudantes, entre outros aspectos relevantes.
Neste cap´ıtulo, ser´a fornecida uma vis˜ao geral da tela de exames utilizada no MCTest. Como
essa tela ´e extensa, ela ser´a explicada em partes.
Adicionalmente, nos cap´ıtulos subsequentes, ser˜ao abordadas as diferentes modalidades de
exames a utilizadas, contendo: (1) Quest˜oes com apenas o quadro de respostas (QR); (2) Quest˜oes
com QR+QT, incluindo os enunciados; (3) QTs exclusivamente, que requerem corre¸ao manual sendo
enviadas aos estudantes por e-mail; (4) QTs exclusivamente, nas quais os estudantes devem fornecer
solu¸oes, como exerc´ıcios de programa¸ao (EPs) em atividades VPL do Moodle. Al´em disso, ser´a
tratada a combina¸ao desses estilos distintos em um ´unico exame.
97
CAP
´
ITULO 6. VIS
˜
AO GERAL DOS EXAMES
6.1 Acesso `a tela de exames
Ap´os efetuar o login, o professor cadastrado em uma disciplina ter´a acesso `a tela de exames
no menu superior direito. Ao acessar essa tela, ilustrada na Figura 6.1, o professor poder´a observar
que ainda ao foram criados exames. Para iniciar o processo de cria¸ao de um novo exame, basta
clicar no bot˜ao “Criar um novo Exame” dispon´ıvel nessa mesma tela.
Figura 6.1: Tela de exames do professor.
Na tela de cria¸ao de um novo exame (consulte a Figura 6.2), ´e necess´ario selecionar uma
turma com pelo menos um estudante e atribuir um nome ao exame. Em seguida, clique no bot˜ao
“Salvar”. A cria¸ao de turma por um professor foi apresentada nas Se¸oes 2.2.4 Turma e 3.3.1
Criar turma com arquivo CSV.
Aten¸ao:
1.
´
E essencial ressaltar que um exame o pode ser criado se estiver associado a uma turma
criada pelo professor. Portanto, antes de excluir uma turma, certifique-se de apagar
todos os exames associados a ela;
2. Ao acessar a tela de atualiza¸ao do exame, ´e extremamente importante preencher os
campos com muita aten¸ao. Essa parte do sistema ´e especialmente sens´ıvel e requer
a cria¸ao de arias mensagens de erro para lidar com o preenchimento incorreto dos
campos.
Ap´os a cria¸ao do exame, ´e poss´ıvel realizar atualiza¸oes e configurar todos os atributos
necess´arios para sua conclus˜ao. Devido `a extens˜ao dessa parte na vers˜ao atual do MCTest, a tela de
Francisco de Assis Zampirolli MCTest 98
6.2. RECORTE I DA TELA DE EXAME
Figura 6.2: Tela para criar um novo exame.
atualiza¸ao de exame foi dividida em arias se¸oes, que ser˜ao apresentadas a seguir. A tela de exame
pode ser acessada por meio do bot˜ao “Atualizar” exibido na Figura 6.1 correspondente ao exame em
quest˜ao rec´em criado.
Al´em disso, antes de prosseguir com a explica¸ao detalhada das se¸oes, ´e poss´ıvel gerar um
PDF do exame com as configura¸oes padr˜ao ao clicar no bot˜ao “Cria-PDF”, conforme detalhado na
pr´oxima se¸ao. Esse PDF ´e ilustrado na Figura 6.3.
6.2 Recorte I da tela de exame
Na Figura 6.4, ´e apresentado o Recorte I da tela de atualiza¸ao de exame, que cont´em os
principais bot˜oes para a cria¸ao e corre¸ao de exames. Cada um desses bot˜oes ou combina¸oes
foi submetido a experimentos e ser´a detalhado em cap´ıtulos futuros deste livro. Esses cap´ıtulos
Francisco de Assis Zampirolli MCTest 99
CAP
´
ITULO 6. VIS
˜
AO GERAL DOS EXAMES
Figura 6.3: Recorte do PDF gerado com as configura¸oes padr˜ao, contendo apenas o cabcalho e o
QR.
fornecer˜ao informa¸oes mais espec´ıficas sobre a utiliza¸ao e os resultados dessas funcionalidades.
6.2.1
´
Area `a esquerda
´
E importante ressaltar que o bot˜ao “Criar-PDF” deve ser pressionado somente no final do
processo de atualiza¸ao do exame, apesar de estar localizado no in´ıcio da tela. Essa posi¸ao inicial
´e justificada pelo fato de que, ao compartilhar um exame entre arias turmas, basta alterar a(s)
turma(s), clicar em “Salvar” no final da tela de exame e, em seguida, clicar nesse bot˜ao “Criar-
PDF”. Dessa forma, todas as altera¸oes feitas no exame ser˜ao registradas e o PDF final poder´a ser
gerado com base nas turmas atualizadas.
Um exemplo pr´atico desse recurso ´e aplicar o mesmo exame em arias ofertas da disciplina,
embora essa ao seja considerada uma boa pr´atica pedag´ogica. No entanto, caso o exame seja
utilizado como uma atividade formativa e ao avaliativa, essa abordagem ao representaria um
problema significativo.
´
E importante destacar que a utiliza¸ao de exames idˆenticos em diferentes
ofertas da disciplina pode comprometer a equidade e a validade da avalia¸ao, pois os estudantes de
diferentes turmas poderiam compartilhar informa¸oes sobre o exame. Recomenda-se a elabora¸ao de
diferentes vers˜oes ou varia¸oes do exame para cada oferta da disciplina, a fim de garantir a diversidade
e a individualidade das avalia¸oes. Para alcan¸car esse objetivo, ´e poss´ıvel criar novas varia¸oes do
exame.
Nas situa¸oes em que se deseja criar exclusivamente exames com QRs, como ilustrado na
Francisco de Assis Zampirolli MCTest 100
6.2. RECORTE I DA TELA DE EXAME
Figura 6.4: Recorte I da tela de exame ver explica¸oes no texto sobre os bot˜oes.
Figura 6.3, ´e poss´ıvel clicar diretamente no bot˜ao “Criar-PDF” sem acionar o bot˜ao vermelho “Criar-
Varia¸oes”. A etapa de cria¸ao de varia¸oes do exame, que envolve a sele¸ao de quest˜oes e outros
atributos, ao ´e necess´aria quando o objetivo ´e gerar apenas exames com QRs.
O bot˜ao de v´ıdeo ao lado do bot˜ao “Criar-PDF” foi criado com o intuito de fornecer uma
explica¸ao detalhada do processo de cria¸ao de exames com exerc´ıcios de programa¸ao e corre¸ao
autom´atica na atividade VPL do Moodle. Esse opico ser´a abordado em um cap´ıtulo futuro, com
mais detalhes e instru¸oes espec´ıficas.
Ao acionar o bot˜ao “Criar-PDF” na Figura 6.4, ser´a gerado um arquivo PDF para cada
turma. Se houver mais de uma turma vinculada ao exame, o navegador ir´a retornar um arquivo ZIP
contendo todos os arquivos PDF. Esse arquivo em formato PDF, ou o arquivo ZIP, tamb´em ser˜ao
enviados para o e-mail do professor. Para imprimir o PDF, siga as seguintes orienta¸oes:
Francisco de Assis Zampirolli MCTest 101
CAP
´
ITULO 6. VIS
˜
AO GERAL DOS EXAMES
´
Area `a esquerda da Figura 6.4 bot˜ao “Criar-PDF”
1. Escolha uma folha A4 de boa qualidade de impress˜ao;
2. No caso de exames com QM, ´e importante garantir que os c´ırculos estejam preenchidos corretamente, pois
falhas na marca¸ao podem interferir no funcionamento do leitor ´optico. Se houver falhas, recomenda-se
trocar de impressora e imprimir novamente;
3. Antes de aplicar o exame, ´e altamente recomend´avel imprimir uma folha de teste, preence-la, digitaliz´a-
la e seguir as instru¸oes indicadas no centro da agina para o envio do arquivo digitalizado pelo bot˜ao
“Upload-PDF”.
Aten¸ao:
Em exames contendo quest˜oes do BD, cada vez que o bot˜ao “Criar-Varia¸oes” for acionado,
diferentes exames ser˜ao gerados e armazenados no BD, com quest˜oes e respostas sorteadas.
Ap´os imprimir o PDF do exame, ´e importante salvar o arquivo no computador com seguran¸ca
e N
˜
AO ALTERAR mais os atributos da agina de exame, exceto ao modificar as turmas e
gerar novos PDFs usando o bot˜ao “Criar-PDF”. Caso contr´ario, a corre¸ao autom´atica ao
ser´a poss´ıvel nos exames digitalizados atrav´es do bot˜ao “Upload-PDF”, detalhado a seguir,
e nem nas corre¸oes autom´aticas em atividades VPL do Moodle. Al´em disso, ao clicar em
“Criar-PDF”, ser´a sorteada uma varia¸ao diferente para cada estudante.
6.2.2
´
Area central
Ap´os a aplica¸ao das atividades com QMs, ´e poss´ıvel realizar a corre¸ao de forma autom´atica,
digitalizando apenas a primeira agina de cada estudante e agrupando em um ´unico PDF todos
os estudantes da turma. No entanto, antes de prosseguir com esse processo, ´e necess´ario seguir as
seguintes recomenda¸oes:
´
Area central da Figura 6.4 bot˜ao “Upload-PDF”
1. Antes de digitalizar os exames realizados pelos estudantes, verifique se todos os c´ırculos foram preenchidos
corretamente. Se houver falhas ou borr˜oes no contorno dos c´ırculos, o corretor pode ao funcionar
adequadamente;
2. Digitalize a agina de frente (para exames com QMs) em n´ıveis de cinza, com uma resolu¸ao de 150 dpi
(se a decodifica¸ao do odigo QR falhar, use 200 dpi) e salve como um arquivo PDF por turma;
3. Verifique se os 4 discos pretos est˜ao completamente preenchidos e sem falhas;
4. Se a op¸ao “Respostas” foi selecionada no campo “Quest˜oes/Respostas/Ambos” na tela de Exame, no
Recorte III, a primeira agina do PDF deve conter o gabarito, e todas as quest˜oes marcadas ser˜ao
desconsideradas;
5. Se a op¸ao “Retorno: SIM” foi escolhida na tela de Exame, ao cadastrar os estudantes da turma, ser´a
necess´ario incluir tamb´em o e-mail do estudante. Nesse caso, siga as instru¸oes no lado direito da agina
“Enviar Retornos aos Estudantes” para cada estudante receber a corre¸ao do seu exame por e-mail.
Francisco de Assis Zampirolli MCTest 102
6.3. RECORTE II DA TELA DE EXAME TURMAS
6.2.3
´
Area `a direita
Esta ´area ´e destinada aos exames com QTs e corre¸ao manual realizadas nas folhas impressas
do exame. No artigo de Zampirolli et al. (2018) foi realizado um experimento utilizando esse processo
avaliativo e ser´a detalhado no Cap´ıtulo 12 MCTest vers˜oes 4, 4.G e 5. No bot˜ao “Enviar Retornos
aos Estudantes Quest˜oes Dissertativas”, na agina do Exame, na Figura 6.4, se foram utilizados
exames com QTs no formato N
˜
AO ecol´ogico, ent˜ao foi gerada uma quest˜ao por folha, correto? Se
desejar enviar as corre¸oes feitas manualmente nos PDFs digitalizados para cada estudante, ser´a
necess´ario seguir alguns passos:
´
Area `a direita da Figura 6.4 bot˜ao “Enviar Retornos aos Estudantes Quest˜oes Disser-
tativas”
1. No passo anterior (bot˜ao “Upload-PDF”), ao fazer o upload de todos os exames digitalizados, foi gerado
um arquivo ZIP com uma pasta para cada quest˜ao (por exemplo, Download.zip). Dentro dessa pasta,
foi gerado um arquivo PDF para cada estudante no formato _e1_c2_q3_p001_5.pdf, onde 1 ´e o ID do
exame, 2 ´e o ID da turma, 3 ´e o ID da quest˜ao, 001 ´e o n´umero da agina e 5 ´e o ID do estudante.
O professor pode fazer corre¸oes adicionando anota¸oes diretamente no PDF OU pode digitalizar os
exames com anota¸oes realizadas `a caneta;
2. Altere manualmente os nomes dos arquivos de cada quest˜ao da seguinte forma:
_A;e1,e2,...;_e1_c2_q3_p001_5.pdf, onde A ´e um conceito ou nota atribu´ıda e ei ao n´umeros de
odigos de erros (opcional). Na pasta de cada quest˜ao, pode ser inclu´ıdo um arquivo _msg.txt (um
para cada quest˜ao) contendo uma mensagem a ser enviada para cada estudante;
3. Compacte a pasta de cada quest˜ao (por exemplo, _e1_q3.zip) e fa¸ca o upload utilizando o bot˜ao “Enviar
Retornos aos Estudantes”. Ser´a enviado para cada estudante o PDF com as corre¸oes, e tamb´em ser´a
gerado um arquivo CSV contendo os conceitos de cada estudante.
6.3 Recorte II da tela de exame turmas
A Figura 6.5 apresenta a se¸ao para selecionar as turmas associadas ao exame. Nessa se¸ao, o
professor pode escolher as turmas nas quais deseja aplicar a avalia¸ao, marcando a caixa de sele¸ao
na primeira coluna. Ap´os realizar as sele¸oes, as turmas escolhidas ser˜ao sempre exibidas no topo da
lista de turmas ao atualizar a agina clicando no bot˜ao “Salvar”.
Na Figura 6.5, tamb´em ao apresentados os seguintes detalhes sobre cada turma: disciplina,
odigo, tipo (pr´atica ou te´orica), localiza¸ao da sala, per´ıodo ou semestre letivo, umero de estudantes
e professor(es) respons´avel(is) pela turma. A ´ultima coluna, intitulada “Ver”, cont´em um bot˜ao com
o ID da turma no banco de dados. Ao clicar nesse bot˜ao, ser´a exibida uma lista com todos os
estudantes da respectiva turma.
6.4 Recorte III da tela de exame quest˜oes
O professor tem a op¸ao de selecionar as quest˜oes desejadas para aplicar na avalia¸ao, con-
forme ilustrado na Figura 6.6. Essa sele¸ao ´e feita marcando a caixa de sele¸ao na primeira coluna
Francisco de Assis Zampirolli MCTest 103
CAP
´
ITULO 6. VIS
˜
AO GERAL DOS EXAMES
Figura 6.5: Recorte II da tela de exame, com as turmas do professor.
correspondente a cada quest˜ao desejada. As quest˜oes marcadas ser˜ao sempre exibidas no topo da
lista de quest˜oes, ap´os clicar no bot˜ao “Salvar”. Essa lista cont´em todas as quest˜oes da disciplina
`a qual o exame est´a vinculado, pois um dos objetivos do MCTest ´e compartilhar esfor¸cos entre os
professores na elabora¸ao de quest˜oes.
Na Figura 6.6, tamb´em ao exibidos os seguintes detalhes sobre cada quest˜ao: opico, descri¸ao
curta, tipo QM ou QT, seguido pelo n´umero de alternativas (´e importante ressaltar que todas as
quest˜oes devem ter o mesmo n´umero de alternativas em cada exame), dificuldade (as quest˜oes de
dificuldade 1 ao apresentadas primeiro, seguidas pelas quest˜oes de dificuldade 2, e assim por diante;
em seguida, ao apresentadas as QTs, tamb´em nessa ordem), grupo (apenas uma quest˜ao por grupo
´e sorteada em cada exame) e, por fim, se a quest˜ao ´e param´etrica ou ao.
A ´ultima coluna, intitulada “Ver”, exibe o ID da quest˜ao. Ao clicar nesse bot˜ao, o professor
poder´a visualizar a quest˜ao em detalhes.
6.5 Recorte IV da tela de exame configurando os detalhes
Na Figura 6.7, ao apresentados os campos de configura¸ao de um exame. Cada quest˜ao
possui uma dificuldade variando de 1 a 5. O professor deve selecionar a quantidade de QMs (na
Figura 6.6) que deseja incluir em cada exame. As quest˜oes ser˜ao exibidas em ordem crescente de
dificuldade, come¸cando pela dificuldade 1 e assim por diante.
´
E importante observar que todas as
QMs de um exame devem ter o mesmo n´umero de alternativas. Al´em disso, ´e poss´ıvel criar exames
Francisco de Assis Zampirolli MCTest 104
6.5. RECORTE IV DA TELA DE EXAME CONFIGURANDO OS DETALHES
Figura 6.6: Recorte III da tela de exame, com as quest˜oes da disciplina.
Figura 6.7: Recorte IV da tela de exame, configurando os detalhes do exame.
que contenham QTs, seguindo a ordem de dificuldade de cada quest˜ao.
Francisco de Assis Zampirolli MCTest 105
CAP
´
ITULO 6. VIS
˜
AO GERAL DOS EXAMES
Alguns exemplos de erros comuns que podem ocorrer:
Na Figura 6.7, o n´umero de quest˜oes por dificuldade de 1 a 5 ´e aplic´avel apenas a QM. O n´umero de
QTs ao ´e contabilizado por dificuldade. Quanto ao n´umero de quest˜oes por dificuldade:
1.
´
E comum ocorrer um erro ao definir uma quantidade inferior de QMs em rela¸ao `a quantidade
selecionada anteriormente (Figura 6.5) para cada dificuldade, especialmente quando as quest˜oes
possuem grupos. Lembre-se de que em cada exame ´e sorteada apenas uma quest˜ao por grupo.
Portanto, se vocˆe selecionar 10 quest˜oes do grupo X, deve considerar apenas uma quest˜ao para
contabilizar a quantidade correta;
2. Tamb´em ´e comum ocorrer o erro de selecionar QMs com um n´umero diferente de alternativas;
3. Finalmente, ocorre erro ao contabilizar quest˜oes com diferentes dificuldades.
Na Figura 6.7, `a direita, ´e poss´ıvel visualizar o estilo do(s) bloco(s) de respostas ou QRs, onde
os estudantes devem marcar as alternativas. Esses QRs aparecem na primeira folha da avalia¸ao.
Diversos estilos est˜ao dispon´ıveis em vision.ufabc.edu.br/MCTest/MCTest5-Experiments. Se a op¸ao
“Ecol´ogico” for definida como “N
˜
AO”, cada QT ser´a desenhada em uma ´unica folha, frente e verso.
Aten¸ao:
1. Se a op¸ao “Retorno” for selecionada como “SIM” na tela de Exame, ao pressionar o
bot˜ao “Criar-PDF”, ser´a enviado um e-mail para cada estudante contendo o exame em
um arquivo PDF anexado;
2. Um exame o existe se estiver associado a uma turma. Portanto:
Antes de excluir as turmas, certifique-se de que todos os exames estejam associados
a uma ´unica turma. Somente ap´os isso, vocˆe poder´a excluir as outras turmas;
Se um exame for deixado sem uma turma selecionada na Figura 6.5 e vocˆe cli-
car em “Salvar”, ocorrer´a um erro. Nesse caso, ser´a poss´ıvel corrigir apenas se o
administrador fizer altera¸oes diretamente no BD, o que ao ´e recomendado;
Foram adicionadas arias mensagens de erro para tentar lidar com esses problemas.
Alguns exemplos de erros comuns que podem ocorrer:
Um erro frequente ocorre quando o campo “Respostas/Quest˜oes/Ambos” ´e incompat´ıvel com os
demais atributos do exame. Certifique-se de que as op¸oes selecionadas nesse campo sejam consistentes
com as demais configura¸oes do exame.
1. A op¸ao “Respostas” exibe apenas o QRs, sem as quest˜oes. Essa op¸ao ´e ´util quando o professor
deseja aplicar apenas QMs, mas fornece os enunciados das quest˜oes em outro documento, ao
gerado pelo MCTest. Nesse caso, ao ´e poss´ıvel ter varia¸oes de exame;
2. A op¸ao “Quest˜oes” ´e geralmente usada para avalia¸oes com QTs;
3. A op¸ao “Ambos” permite incluir tanto o QR quanto as QMs, podendo tamb´em incluir QTs.
Francisco de Assis Zampirolli MCTest 106
6.6. CONSIDERAC¸
˜
OES FINAIS
6.6 Considera¸oes finais
A realiza¸ao dos exames desempenha um papel fundamental no MCTest, sendo o elemento
central do sistema. Neste cap´ıtulo, ser´a fornecida uma vis˜ao geral da tela de exames utilizada no
MCTest, abordando os principais aspectos relacionados `a cria¸ao e configura¸ao dos exames.
Ao acessar a tela de exames, o professor tem a flexibilidade de incluir uma ou arias turmas
de estudantes em um exame, selecionar as quest˜oes que far˜ao parte dele e definir diversos aspectos
relevantes, como o formato de impress˜ao, a quantidade de varia¸oes a serem criadas e a entrega do
exame aos estudantes.
Foram exploradas as diferentes se¸oes presentes na tela de exames, destacando o processo de
sele¸ao das turmas associadas ao exame, a escolha das quest˜oes a serem inclu´ıdas e a configura¸ao
detalhada do exame, como a defini¸ao da quantidade de QMs e QTs.
Ao longo dos cap´ıtulos seguintes, ser˜ao aprofundadas as modalidades de exames dispon´ıveis
no MCTest, abordando quest˜oes com apenas o QR, quest˜oes com o enunciado completo, QTs que
requerem corre¸ao manual e exames compostos por diferentes estilos de quest˜oes.
´
E importante estar ciente de poss´ıveis erros comuns ao criar e configurar os exames, como a
defini¸ao incorreta do n´umero de quest˜oes por dificuldade, especialmente quando as quest˜oes possuem
grupos, e a sele¸ao de QMs com um n´umero diferente de alternativas. O sistema conta com mensagens
de erro para auxiliar na identifica¸ao e corre¸ao desses problemas.
Por fim, foi destacada a importˆancia de associar corretamente os exames a uma turma e de
verificar as configura¸oes antes de realizar exclus˜oes, garantindo a integridade dos dados e o correto
funcionamento do sistema.
No pr´oximo cap´ıtulo, ser´a abordada a modalidade de exames com apenas QR, explorando
suas caracter´ısticas e funcionalidades.
Francisco de Assis Zampirolli MCTest 107
CAP
´
ITULO 6. VIS
˜
AO GERAL DOS EXAMES
Francisco de Assis Zampirolli MCTest 108
Cap´ıtulo 7
Exames com Quadro de Respostas (QR)
Conte´udo
7.1 Utilizando exames exclusivamente com QR . . . . . . . . . . . . . . . . . . . . 110
7.1.1 Estilo vertical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.1.2 Estilo horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.2 Restri¸oes nos QRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.3 Corrigindo exames com QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3.1 Arquivo CSV com as corre¸oes . . . . . . . . . . . . . . . . . . . . . . . 115
7.3.2 Teoria de Resposta ao Item . . . . . . . . . . . . . . . . . . . . . . . . 116
7.3.3 Feedback ao estudante . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.4 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Este cap´ıtulo enfoca a cria¸ao de exames que contˆem exclusivamente o quadro de resposta
(QR). Essa abordagem ´e especialmente ´util quando os enunciados das quest˜oes ao fornecidos sepa-
radamente.
´
E uma pr´atica amplamente adotada na Escola Preparat´oria da UFABC (EPUFABC)
para processos seletivos e simulados que envolvem in´umeros estudantes anualmente. Ser´a apresen-
tado como acomodar centenas de quest˜oes em uma ´unica agina em formato PDF, que pode ser
impressa e distribu´ıda aos estudantes para preencherem manualmente as respostas. Em seguida, os
QRs ao digitalizados e enviados ao MCTest para corre¸ao. O sistema envia ao professor um e-mail
contendo arquivos CSV com as marca¸oes de cada estudante e as respostas corretas. Al´em disso, em
poucos minutos, o MCTest fornece uma s´ıntese da Teoria de Respostas ao Item (TRI) com base nas
corre¸oes realizadas. O gabarito, ou seja, as respostas corretas, ´e fornecido na primeira agina do
PDF digitalizado, que pode conter as respostas de todos os estudantes de uma turma em sequˆencia.
109
CAP
´
ITULO 7. EXAMES COM QUADRO DE RESPOSTAS (QR)
7.1 Utilizando exames exclusivamente com QR
Conforme visto no cap´ıtulo anterior, na Se¸ao 6.1 Acesso `a tela de exames, ao criar um
exame, a configura¸ao padr˜ao ´e para um exame com exclusivamente o QR, como mostrado na Figura
6.3. Para esse estilo de exame, o professor o precisa selecionar a(s) turma(s) e seguir as instru¸oes
descritas na Se¸ao 6.5 Recorte IV da tela de exame configurando os detalhes para configurar
os detalhes do exame. Nesse caso, ´e necess´ario definir o n´umero de quest˜oes em uma escala de
dificuldade de 1 a 5 e o umero de alternativas de cada quest˜ao na parte esquerda da Figura 6.7. Na
parte direita, vocˆe deve informar a quantidade de quest˜oes por bloco/quadro e escolher a quantidade
de blocos por linha, al´em de definir se o estilo do exame ser´a horizontal ou vertical. Certifique-se
de marcar as op¸oes “Quest˜oes/Respostas/Ambos=Respostas”, “Ecol´ogico=Sim” e “Retorno=N˜ao”.
As instru¸oes do exame podem ser definidas no campo “Instru¸oes” e ´e poss´ıvel utilizar a formata¸ao
de itens com o comando \item.
7.1.1 Estilo vertical
Na Figura 7.1, ´e apresentado um recorte do cabcalho do exame, que inclui os dados do
candidato e o QR. No processo seletivo da EPUFABC, realizado em 2019, houve a digitaliza¸ao
de 2553 QRs. Nesse caso espec´ıfico, foi adotado o estilo vertical, com 25 quest˜oes por bloco e
dois blocos por linha. Observa-se no cabcalho a presen¸ca de um QRcode (Quick Response Code)
criptografado e compactado, contendo informa¸oes do exame e do candidato. Apenas 13 exames
tiveram o odigo ao reconhecido (normalmente, basta digitaliz´a-lo novamente com uma resolu¸ao
melhor para funcionar). Al´em disso, somente 5 candidatos preencheram o QR incorretamente. Por
exemplo, na Figura 7.1, ´e poss´ıvel observar que o candidato ultrapassou o local de marca¸ao na
quest˜ao 48. Quando isso acontece, ´e poss´ıvel corrigir a marca¸ao errada utilizando um corretivo ou
um editor de PDF que permite a edi¸ao de imagens no pr´oprio documento, como o site ilovepdf.com.
No entanto, ´e importante ter cuidado para ao remover parte dos c´ırculos ao realizar a corre¸ao.
Um exemplo de instru¸oes, que contou com a colabora¸ao do Prof. Dr. Leonardo Steil, ent˜ao
Pr´o-Reitor de Extens˜ao, para redigir o texto, ´e mostrado na Figura 7.2, utilizado no processo seletivo
de 2019 da EPUFABC.
Com esse exemplo realizado na EPUFABC, foi destacada a utilidade do MCTest na realiza¸ao
de avalia¸oes para in´umeros estudantes. No caso em quest˜ao, foi criado um ´unico arquivo CSV para
preencher as 29 turmas, uma em cada sala de aula, conforme descrito na Se¸ao 3.2.2 - Criar arias
turmas com arquivo CSV. Em seguida, foi configurado um ´unico exame selecionando todas as turmas
e gerados os PDFs, um por turma, conforme detalhado na Se¸ao 6.2 - Recorte I da tela de exame.
Os exames foram impressos e aplicados aos estudantes. Posteriormente, foi realizada a digitaliza¸ao
dos QRs, conforme explicado na Se¸ao 6.2. O MCTest ent˜ao enviou as corre¸oes dos exames. Em
casos em que ocorreu algum erro durante o processo de corre¸ao do QR, uma imagem da quest˜ao
e das alternativas foi salva e inclu´ıda em um arquivo ZIP que tamb´em foi enviado ao professor por
e-mail.
Francisco de Assis Zampirolli MCTest 110
7.1. UTILIZANDO EXAMES EXCLUSIVAMENTE COM QR
Figura 7.1: Recorte de um exame digitalizado em formato PDF no estilo vertical.
Figura 7.2: Recorte de um exame em formato PDF no estilo vertical, com as instru¸oes.
Francisco de Assis Zampirolli MCTest 111
CAP
´
ITULO 7. EXAMES COM QUADRO DE RESPOSTAS (QR)
7.1.2 Estilo horizontal
Para minimizar os erros nas marca¸oes dos c´ırculos, foi criado o estilo horizontal, como ilus-
trado na Figura 7.3.
´
E importante observar que, na quest˜ao 15 desta figura, o candidato utilizou
corretivo, o que inviabilizou o algoritmo de vis˜ao computacional na corre¸ao autom´atica deste candi-
dato. Esse estilo foi aplicado no processo seletivo da EPUFABC em 2020. Al´em disso, o estilo vertical
ocupa menos espa¸co na folha de exame, o que ´e especialmente ´util quando se deseja incluir tanto o
QR quanto as quest˜oes em uma ´unica folha, conforme utilizado no processo seletivo da Especializa¸ao
em Tecnologias e Sistemas da Informa¸ao (TSI), que ser´a apresentado no pr´oximo cap´ıtulo.
Figura 7.3: Recorte de um exame digitalizado em formato PDF no estilo vertical.
O restante deste cap´ıtulo fornecer´a mais detalhes sobre esse estilo de exame que inclui exclu-
sivamente o QR.
7.2 Restri¸oes nos QRs
Na Figura 7.4, ao apresentados exemplos de exames com a quantidade axima de quest˜oes
nos estilos horizontal (245 quest˜oes) e vertical (200 quest˜oes).
´
E importante ressaltar que, se o
n´umero de alternativas for menor do que cinco, esses valores aximos ser˜ao ainda maiores. O
n´umero m´ınimo de alternativas permitidas por quest˜ao ´e trˆes. Al´em disso, ´e relevante
destacar que apenas a agina da frente pode ser utilizada para a constru¸ao dos QRs.
A seguir, ser˜ao apresentadas mais restri¸oes relacionadas `a organiza¸ao dos QRs. O n´umero
m´ınimo de quest˜oes por bloco ´e trˆes. Portanto, se for criado um exame com 17 quest˜oes, cinco
quest˜oes por bloco e dois blocos por linha, ocorrer´a um erro, pois ao ´e poss´ıvel ter um bloco com
Francisco de Assis Zampirolli MCTest 112
7.2. RESTRIC¸
˜
OES NOS QRS
Figura 7.4: Exemplos de PDFs de exames com 245 quest˜oes no estilo horizontal e 200 quest˜oes no
estilo vertical.
Francisco de Assis Zampirolli MCTest 113
CAP
´
ITULO 7. EXAMES COM QUADRO DE RESPOSTAS (QR)
apenas duas quest˜oes. Uma alternativa nesse caso seria criar blocos com seis quest˜oes cada um, por
exemplo. Na Figura 7.5, ´e mostrado um exemplo contendo 18 quest˜oes, cinco quest˜oes por bloco e
dois blocos por linha.
Figura 7.5: Exemplo de PDF de um exame com 18 quest˜oes, cinco quest˜oes por bloco e dois blocos
por linha.
7.3 Corrigindo exames com QR
Ao imprimir o PDF apresentado na Figura 7.5 e preencher o gabarito, foi digitalizado e
apresentado na Figura 7.6–(a). Em seguida, foram preenchidas mais algumas alternativas na mesma
agina do gabarito e realizada uma nova digitaliza¸ao, como mostrado na Figura 7.6–(b). Na terceira
agina do PDF, optou-se por repetir o gabarito para simular um estudante que obteve a nota axima
nesta avalia¸ao.
´
E importante mencionar que a Figura 7.6–(b) exibe a digitaliza¸ao da agina rotacionada de
prop´osito. Isso pode ser feito sem problemas, desde que os quatro discos pretos externos estejam
intactos na digitaliza¸ao. Nesse caso espec´ıfico, os erros foram gerados intencionalmente ao mar-
car mais de uma alternativa em algumas quest˜oes, para avaliar a capacidade do etodo de vis˜ao
computacional em detectar essas marca¸oes incorretas.
Ap´os fazer o upload deste PDF, seguindo as instru¸oes descritas na Se¸ao 6.2 - Recorte I da
tela de exame, ser˜ao gerados arios arquivos que ser˜ao compactados em um arquivo ZIP, conforme
apresentado a seguir:
Francisco de Assis Zampirolli MCTest 114
7.3. CORRIGINDO EXAMES COM QR
(a) (b)
Figura 7.6: Exemplos de exames digitalizados a partir do PDF mostrado na Figura 7.5.
Arquivos gerados ao solicitar a corre¸ao do exame no bot˜ao “Upload-PDF”
_e476_fzampirolli@ufabc.edu.br_ScanFile_RETURN__.csv
_e476_fzampirolli@ufabc.edu.br_ScanFile_RETURN_irt.csv
_e476_fzampirolli@ufabc.edu.br_ScanFile_RETURN_p002_s3_q002.png
_e476_fzampirolli@ufabc.edu.br_ScanFile_RETURN_p002_s3_q003.png
_e476_fzampirolli@ufabc.edu.br_ScanFile_RETURN_p002_s3_q004.png
_e476_fzampirolli@ufabc.edu.br_ScanFile_RETURN_p002_s3_q005.png
_e476_fzampirolli@ufabc.edu.br_ScanFile_RETURN_statistics.csv
Nesses arquivos, o prefixo _e476_ representa o ID do exame no banco de dados, seguido pelo
e-mail do professor logado no MCTest e pelo nome do arquivo digitalizado e enviado para corre¸ao.
O sufixo _RETURN_ indica que esses arquivos ser˜ao compactados e enviados ao e-mail do professor
vinculado `a conta logada no MCTest.
7.3.1 Arquivo CSV com as corre¸oes
O conte´udo do primeiro arquivo CSV na lista anterior, *_.csv, apresenta a seguinte estrutura:
a primeira linha cont´em o cabe¸calho, onde Pag representa a agina do PDF, ID ´e a identifica¸ao do
estudante obtida por meio do QRcode, Resp indica a quantidade de alternativas, Quest representa
a quantidade de quest˜oes, Inv indica as quest˜oes inalidas (sem marca¸ao ou com mais de uma
marca¸ao), e Grade mostra a quantidade de quest˜oes marcadas corretamente, conforme o gabarito
presente na primeira linha. A segunda linha cont´em a compila¸ao do gabarito (compila¸ao da pri-
meira agina do PDF), enquanto a linha seguinte representa o exame com erros no preenchimento
(compila¸ao da segunda agina do PDF).
´
E poss´ıvel observar que existem quatro quest˜oes inalidas
identificadas pela coluna Inv, correspondentes `as quest˜oes 12, 13, 14 e 15 do terceiro bloco (identifi-
cado como s3 na lista acima), ver Figura 7.6–(b). Essas quest˜oes foram salvas como arquivos PNG e
est˜ao exibidas na Figura 7.7. Essas imagens ao ´uteis, pois o professor pode analis´a-las para verificar
Francisco de Assis Zampirolli MCTest 115
CAP
´
ITULO 7. EXAMES COM QUADRO DE RESPOSTAS (QR)
poss´ıveis altera¸oes na quantidade de respostas corretas do estudante. A quarta linha deste arquivo
CSV corresponde `a repeti¸ao do gabarito (compila¸ao da terceira agina do PDF).
Conte´udo do arquivo * .csv gerado (as colunas ao separadas por v´ırgula)
Pag ID Resp Quest Inv Grade Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18
1 1 5 18 0 0 A B C D E E D C B A A A A A A D D D
2 1 5 18 4 14 A B C D E E D C B A A 2/A 3/A 4/A 5/A D D D
3 1 5 18 0 18 A B C D E E D C B A A A A A A D D D
Aten¸ao:
1. Quando ocorre um erro na decodifica¸ao do QRcode, ´e apresentado ERROR na coluna Pag;
2. Quando ocorre um erro na compila¸ao dos QRs, como apresentados nas Figuras 7.1 e
7.3, as colunas Resp e Quest apresentam n´umeros diferentes dos definidos no formul´ario
do exame.
Figura 7.7: Recortes das quest˜oes marcadas erradamente na Figura 7.6–(b).
7.3.2 Teoria de Resposta ao Item
O segundo arquivo CSV, com sufixo _irt.csv, cont´em as respostas corretas (representadas
pelo valor 1) e incorretas (representadas pelo valor 0), a partir da segunda linha (o gabarito da
primeira linha ´e desconsiderado), conforme exemplificado a seguir. Esse arquivo ser´a utilizado para
realizar os alculos da Teoria de Resposta ao Item (TRI) (BIRNBAUM, 1968).
Conte´udo do arquivo * irt.csv gerado (as colunas ao separadas por v´ırgula)
1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Os resultados da TRI foram adaptados do site criado por Yasuharu Okamoto, utilizando a
biblioteca PyMC3 do Python. A TRI ´e amplamente utilizada na medi¸ao de habilidades, sendo o
Francisco de Assis Zampirolli MCTest 116
7.3. CORRIGINDO EXAMES COM QR
Exame Nacional do Ensino M´edio (ENEM) um exemplo conhecido dessa aplica¸ao. No entanto,
em psicologia, ´e comum adotar a abordagem de est´agios para representar o desenvolvimento dessas
habilidades. Esse modelo permite analisar dados de habilidades representadas por est´agios, onde a
probabilidade de uma resposta correta aumenta `a medida que o est´agio avan¸ca. No caso do MCTest,
utilizou-se um n´umero de est´agios K=5, representando os cinco conceitos que o estudante pode
alcan¸car (A, B, C, D e F) na gradua¸ao da UFABC. O script adaptado calcula as probabilidades de
respostas corretas entre esses est´agios.
Ao detalhar um pouco mais esse processo, ´e importante mencionar que o MCTest calcula auto-
maticamente a TRI de cada PDF digitalizado submetido para corre¸ao. No entanto, para calcular a
TRI dos 2553 candidatos que participaram do processo seletivo da EPUFABC em 2019, foi necess´ario
reunir todos esses arquivos _irt.csv obtidos dos PDFs submetidos em um ´unico arquivo. Para oti-
mizar o tempo de processamento, realizou-se a ordena¸ao e criou-se um novo CSV contendo os dados
dos 1000 candidatos com melhor classifica¸ao. Em seguida, utilizou-se o script disponibilizado no
GitHub, no arquivo github.com/fzampirolli/mctest/blob/master/ irt pymc3 shell.py. Es-
pecificamente para o trabalho de Zampirolli et al. (2021a), foi utilizada tamb´em a linguagem de
programa¸ao R para processar todos os candidatos.
Melhorias:
Para trabalhos futuros, ´e necess´ario adaptar esse processo de alculo da TRI para lidar de
forma mais eficiente com um n´umero maior de candidatos, visto que a abordagem atual se
limita aos 1000 mais bem classificados.
Os resultados obtidos por meio da TRI ser˜ao apresentados no terceiro arquivo CSV, com
sufixo _statistics.csv, conforme demonstrado a seguir. Nesse arquivo de estat´ısticas, a primeira
coluna, id, representa o n´umero da quest˜ao. A coluna corr indica o n´umero de respostas corretas,
enquanto a coluna fail indica o n´umero de respostas marcadas incorretamente. A coluna aver
representa a edia de acertos, e a coluna str indica o desvio padr˜ao. Em seguida, em-se as colunas
%corr e %fail, que representam a porcentagem de respostas corretas e incorretas, respectivamente.
No entanto, ´e importante ressaltar que um experimento completo realizado na EPUFABC,
que resultou no trabalho de Zampirolli et al. (2021a), ser´a apresentado na parte de experimentos
deste livro.
Francisco de Assis Zampirolli MCTest 117
CAP
´
ITULO 7. EXAMES COM QUADRO DE RESPOSTAS (QR)
Conte´udo do arquivo * statistics.csv gerado (as colunas ao separadas por v´ırgula)
id corr fail aver std %corr %fail
1 2 0 1.0 0.0 1.0 0.0
2 2 0 1.0 0.0 1.0 0.0
3 2 0 1.0 0.0 1.0 0.0
4 2 0 1.0 0.0 1.0 0.0
5 2 0 1.0 0.0 1.0 0.0
6 2 0 1.0 0.0 1.0 0.0
7 2 0 1.0 0.0 1.0 0.0
8 2 0 1.0 0.0 1.0 0.0
9 2 0 1.0 0.0 1.0 0.0
10 2 0 1.0 0.0 1.0 0.0
11 2 0 1.0 0.0 1.0 0.0
12 1 1 0.5 0.5 0.5 0.5
13 1 1 0.5 0.5 0.5 0.5
14 1 1 0.5 0.5 0.5 0.5
15 1 1 0.5 0.5 0.5 0.5
16 2 0 1.0 0.0 1.0 0.0
17 2 0 1.0 0.0 1.0 0.0
18 2 0 1.0 0.0 1.0 0.0
7.3.3 Feedback ao estudante
Se a op¸ao “Retorno=Sim” na Se¸ao 6.5 Recorte IV da tela de exame configurando os
detalhes for selecionada, ao clicar em “Upload–PDF”, as corre¸oes do exame de cada estudante ser˜ao
enviadas por e-mail em formato PDF, conforme apresentado na Figura 7.8.
´
E poss´ıvel observar
que as marca¸oes incorretas ao indicadas por um c´ırculo na alternativa correta. No final do PDF,
´e fornecido um resumo contendo os dados do estudante e a quantidade de acertos. No pr´oximo
cap´ıtulo, ser˜ao apresentados mais exemplos de QR que incluem as QMs.
7.4 Considera¸oes finais
Este cap´ıtulo abordou a cria¸ao de exames exclusivamente com o QR, uma pr´atica comumente
adotada na Escola Preparat´oria da UFABC (EPUFABC) para processos seletivos e simulados que
envolvem in´umeros estudantes anualmente. Foi demonstrado como acomodar centenas de quest˜oes
em uma ´unica agina no formato PDF, que pode ser impressa e distribu´ıda aos estudantes para
preencherem manualmente as respostas.
Em seguida, os QRs ao digitalizados e enviados ao MCTest para corre¸ao. O sistema envia
ao professor um e-mail contendo arquivos CSV com as marca¸oes de cada estudante e as respostas
corretas. Al´em disso, o MCTest fornece uma s´ıntese da Teoria de Respostas ao Item (TRI) com base
nas corre¸oes realizadas. O gabarito, ou seja, as respostas corretas, ´e fornecido na primeira agina do
PDF digitalizado, que pode conter as respostas de todos os estudantes de uma turma em sequˆencia.
Francisco de Assis Zampirolli MCTest 118
7.4. CONSIDERAC¸
˜
OES FINAIS
Figura 7.8: PDF com o feedback das corre¸oes enviado para o e-mail do estudante.
Ao utilizar exames exclusivamente com QR, ´e importante configurar corretamente os detalhes
do exame, como o n´umero de quest˜oes, o n´umero de alternativas por quest˜ao e o estilo do exame
(horizontal ou vertical). Foi destacado que ´e poss´ıvel corrigir eventuais erros de marca¸ao utilizando
ferramentas de edi¸ao de PDF, mas ´e necess´ario ter cuidado para preservar as marca¸oes corretas.
Por fim, foi apresentada a possibilidade de fornecer feedback aos estudantes, atrav´es da op¸ao
“Retorno=Sim” no MCTest. Nesse caso, o sistema envia por e-mail um PDF com as corre¸oes
do exame para cada estudante, contendo marca¸oes incorretas indicadas por c´ırculos na alternativa
correta, bem como um resumo dos dados do estudante e a quantidade de acertos.
No pr´oximo cap´ıtulo, ser˜ao apresentados mais exemplos de QR que incluem as quest˜oes,
ampliando as possibilidades de utiliza¸ao dessa abordagem no contexto educacional.
Francisco de Assis Zampirolli MCTest 119
CAP
´
ITULO 7. EXAMES COM QUADRO DE RESPOSTAS (QR)
Francisco de Assis Zampirolli MCTest 120
Cap´ıtulo 8
Exames com QR+QM e/ou QT
Conte´udo
8.1 Criando QMs e uma QT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
8.2 Criando as varia¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.3 Detalhando os gabaritos no arquivo CSV . . . . . . . . . . . . . . . . . . . . . 126
8.4 Criando o PDF do exame com QR+QM+QT . . . . . . . . . . . . . . . . . . 127
8.5 Corrigindo exames com QR+QM . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.6 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Este cap´ıtulo complementa o anterior, fornecendo detalhes sobre o processo de cria¸ao e
corre¸ao de exames que envolvem tanto o Quadro de Respostas (QR) quanto os enunciados das
quest˜oes de ultipla escolha (QMs), como exemplificado nos Cap´ıtulos 4 Quest˜oes est´aticas e 5
Quest˜oes param´etricas para quest˜oes com odigo em Python.
Esse estilo de exame com QR+QM tem sido amplamente utilizado na Especializa¸ao em Tec-
nologia e Sistemas de Informa¸ao (TSI) da UFABC, como introduzido no Cap´ıtulo 1, nos processos
seletivos desde 2017. Anteriormente, desde 2012, a se utilizava o MCTest em vers˜oes anteriores,
com QR+QM, por´em em um formato de exame que empregava editores de texto como o Word ou
o BROffice, com uma ´unica folha frente e verso, para evitar a necessidade de grampear as folhas de
milhares de candidatos nos processos seletivos. O avan¸co significativo no MCTest ocorreu na vers˜ao
4, quando passou a ser poss´ıvel criar os exames utilizando o L
A
T
E
X, o que permitiu tamb´em a inclus˜ao
de blocos de odigo Python para a elabora¸ao de quest˜oes param´etricas, conforme apresentado no
Cap´ıtulo 5 Quest˜oes param´etricas. A vers˜ao mais recente do MCTest, dispon´ıvel na web, possi-
bilitou o armazenamento das quest˜oes em um banco de dados, juntamente com toda uma estrutura
para gerenciar um sistema acadˆemico voltado exclusivamente para avalia¸oes. Esses avan¸cos tˆem sido
objeto de diversas publica¸oes e tamb´em motivaram a escrita deste livro, com o intuito de registrar
as principais caracter´ısticas de tudo o que foi desenvolvido e validado em avalia¸oes dos mais diversos
estilos.
121
CAP
´
ITULO 8. EXAMES COM QR+QM E/OU QT
Al´em das QMs, tamb´em ´e poss´ıvel incluir quest˜oes dissertativas (QTs) nos exames, ap´os a
apresenta¸ao das QMs. Essa abordagem permite uma maior diversidade nos tipos de quest˜oes e uma
avalia¸ao mais abrangente das habilidades dos estudantes.
No Cap´ıtulo 6 Vis˜ao geral dos exames, foi introduzido como criar exames contendo QR+QM,
abordando detalhes sobre o formul´ario do exame. Agora, ser´a colocada em pr´atica a cria¸ao de
exemplos de exames contendo QR+QM+QT, al´em de detalhar o processo de corre¸ao autom´atica.
8.1 Criando QMs e uma QT
Uma forma pr´atica de criar quest˜oes ao param´etricas no MCTest ´e utilizando um arquivo
TXT com todas as quest˜oes, conforme introduzido na Se¸ao 4.1 Tutoriais gerais sobre a navega¸ao
de quest˜oes. Antes de prosseguir com a cria¸ao das quest˜oes, ´e necess´ario criar o opico, por exemplo,
DE-TIC da disciplina, seguindo as instru¸oes apresentadas na Se¸ao 2.2.5 opico.
A seguir, ser˜ao apresentadas sete quest˜oes que ser˜ao inclu´ıdas no MCTest. Ser˜ao duas quest˜oes
para o n´ıvel de dificuldade acil (QE), ou dificuldade 1, duas quest˜oes para o n´ıvel de dificuldade m´edio
(QM), ou dificuldade 3, e trˆes quest˜oes para o n´ıvel de dificuldade dif´ıcil (QH), ou dificuldade 5. Para
otimizar o processo de upload, sugere-se agrup´a-las em um ´unico arquivo TXT.
Arquivo CSV, quest˜oes aceis
QE::DE-TIC::
Qual ´e o componente principal de um computador que armazena dados e programas?
A: Mem´oria RAM % alternativa correta - sempre a primeira
A: Placa-m~ae
A: Processador
A: Teclado
A: Placa de ıdeo
QE::DE-TIC::
Qual dos seguintes dispositivos ´e usado exclusivamente para entrada de dados em um computador?
A: Teclado
A: Impressora
A: Caixa de som
A: Monitor
A: Placa de ıdeo
Francisco de Assis Zampirolli MCTest 122
8.1. CRIANDO QMS E UMA QT
Arquivo CSV, quest˜oes de n´ıvel m´edio
QM::DE-TIC::
O que significa a sigla HTML?
A: HyperText Markup Language
A: High Technical Machine Language
A: Home Tool Management Language
A: Hyper Transfer Machine Learning
A: Hardware Technical Maintenance Language
QM::DE-TIC::
Qual das seguintes linguagens de programa¸c~ao ´e amplamente utilizada para o desenvolvimento de
sites din^amicos?
A: JavaScript
A: HTML
A: CSS
A: Python
A: C++
Arquivo CSV, quest˜oes dif´ıceis
QH::DE-TIC::
Qual das seguintes op¸c~oes representa corretamente um endere¸co IP alido?
A: 127.0.0.1
A: 192.168.0.300
A: 10.0.0.256
A: 172.16.0.0
A: 256.256.256.256
QH::DE-TIC::
Qual dos seguintes protocolos de internet ´e utilizado para enviar e-mails?
A: SMTP
A: FTP
A: HTTP
A: DNS
A: SSH
QH::DE-TIC::
Qual ´e o resultado da soma dos umeros hexadecimais 7C e 54?
A: D0
A: F0
A: D4
A: D1
A: E0
A quest˜ao apresentada no odigo 8.1 ´e um exemplo de QT que cont´em um valor exato
como resposta correta, delimitado pelos marcadores %%{ e }%%, conforme indicado na linha 5 do
Francisco de Assis Zampirolli MCTest 123
CAP
´
ITULO 8. EXAMES COM QR+QM E/OU QT
odigo. Neste caso, ´e utilizada a palavra “exata” como exemplo para ilustrar o funcionamento dessa
abordagem. Na linha 7 do odigo, ao desenhadas 10 linhas para que o estudante possa responder `a
quest˜ao. Na pr´oxima se¸ao, ser´a explorada essa funcionalidade com mais detalhes.
Quest˜ao:
1 Descreva brevemente a import^ancia da tecnologia da informa¸c~ao (TI) na
2 sociedade moderna e mencione pelo menos duas ´areas onde a TI desempenha
3 um papel fundamental.
4
5 %%{exata}%%
6
7 \drawLines{10}
odigo 8.1: Exemplo de QT com resposta exata.
Ao criar o exame, selecione as sete QMs, escolhendo duas quest˜oes em cada n´ıvel de dificuldade,
conforme ilustrado na Figura 8.1. Al´em disso, inclua uma QT como exemplo. Certifique-se de marcar
a op¸ao “Respostas/Quest˜oes/Ambos=Ambos” para incluir tanto o QR quanto as quest˜oes (QM e
QT) no exame. Mais informa¸oes sobre essa configura¸ao podem ser encontradas na Se¸ao 6.5
Recorte IV da tela de exame configurando os detalhes.
Figura 8.1: Recorte da tela de configura¸ao do exame.
Francisco de Assis Zampirolli MCTest 124
8.2. CRIANDO AS VARIAC¸
˜
OES
8.2 Criando as varia¸oes
Antes de criar o PDF do exame, ´e necess´ario criar as varia¸oes clicando no bot˜ao “Criar-
Varia¸oes” (observe que ao lado deste bot˜ao a um ID inicialmente definido como 0, que ser´a alterado
quando o bot˜ao for pressionado).
´
E importante detalhar mais essa op¸ao, conforme ilustrado na
Figura 8.2.
Ao marcar a op¸ao “Json”, se a quest˜ao for de integra¸ao entre MCTest, Moodle e VPL, ser´a
enviado ao e-mail do professor um arquivo linker.json contendo os casos de teste a serem inclu´ıdos
na atividade VPL do Moodle. Se a op¸ao “Template” for selecionada, ser´a criado um arquivo CSV
contendo o gabarito das QMs, bem como QTs com respostas curtas, para ser poss´ıvel comparar as
respostas exatas, caractere por caractere.
As op¸oes “Aiken” e “XML” ao utilizadas para gerar arquivos que podem ser importados
para criar um banco de quest˜oes no Moodle. Por fim, ao selecionar a op¸ao “LaTeX+PDF”, o
professor receber´a um PDF contendo todas as varia¸oes do exame. No exemplo ilustrado na Figura
8.1, foram criadas apenas duas varia¸oes. Vale ressaltar que existem artigos validando cada etodo
utilizado nesses bot˜oes, os quais ser˜ao detalhados na parte de experimentos deste livro.
Figura 8.2: Recorte da tela de configura¸ao do exame, detalhando o bot˜ao “Criar-Varia¸oes”.
Assim, antes de criar o PDF do exame, marque a op¸ao “Template” na Figura 8.2 para receber
o gabarito e clique em “Criar-Varia¸oes”. Nesse exemplo, uma nova aba ser´a aberta no navegador
exibindo a mensagem apresentada na Figura 8.3.
Figura 8.3: Mensagem ap´os clicar no bot˜ao “Criar-Varia¸oes”.
Francisco de Assis Zampirolli MCTest 125
CAP
´
ITULO 8. EXAMES COM QR+QM E/OU QT
8.3 Detalhando os gabaritos no arquivo CSV
Ap´os clicar em “Criar-Varia¸oes”, selecionando antes a op¸ao “Template”, o professor receber´a
um e-mail contendo o seguinte arquivo com os gabaritos, conforme ilustrado na Figura 8.4.
Arquivo CSV, com os gabaritos (as colunas ao separadas por v´ırgula)
variation Q1 Q2 Q3 Q4 Q5 Q6 Q7 K1 K2 K3 K4 K5 K6
0 A B C A A A exata 245604231 245540123 245823041 245703214 245904132 246002413
1 C A B E A E exata 245612043 245503421 245830214 245741320 246104132 246032140
Figura 8.4: E-mail enviado ao professor ap´os clicar no bot˜ao “Criar-Varia¸oes”.
No arquivo em quest˜ao, a primeira coluna variation apresenta a varia¸ao do exame. No
exemplo mostrado na Figura 8.1, foram escolhidas apenas duas varia¸oes, identificadas como varia¸ao
0 e varia¸ao 1. Em seguida, ao apresentadas as respostas corretas para cada uma das sete quest˜oes
do exame, identificadas como Q1 at´e Q7.
A quest˜ao Q7 ´e uma QT e foi definida em seu enunciado a sequˆencia %%{exata}%%, indicando
para o MCTest que essa quest˜ao tem uma resposta exata contendo o texto “exata”.
´
E importante
ressaltar que ´e poss´ıvel incluir quest˜oes param´etricas, onde cada varia¸ao pode apresentar uma res-
posta correta diferente. Essa flexibilidade ´e discutida em detalhes no trabalho de Zampirolli et al.
(2020), que descreve a aplica¸ao dessas ecnicas na disciplina de alculo 1. Na parte de experimentos
deste livro, essas abordagens ser˜ao apresentadas de forma mais detalhada, explorando suas aplica¸oes
e resultados.
Ap´os as respostas corretas, ao criadas novas colunas de K1 at´e K6 para detalhar o sorteio
realizado em cada varia¸ao do exame para as QMs. Por exemplo, na varia¸ao 1 (segunda varia¸ao), a
quest˜ao K1 tem o valor 245612043. Como ao QMs com 5 alternativas, o valor 12043 indica a ordem
das alternativas da quest˜ao 2456 (ID da quest˜ao no banco de dados). Sabendo que a alternativa
Francisco de Assis Zampirolli MCTest 126
8.4. CRIANDO O PDF DO EXAME COM QR+QM+QT
correta sempre ´e a primeira (´ındice 0), pode-se concluir que a alternativa correta para essa quest˜ao
´e a letra C. Portanto, a alternativa A corresponde `a segunda alternativa no banco de dados (´ındice
1), a alternativa B corresponde `a terceira (´ındice 2), a alternativa C corresponde `a primeira correta
(´ındice 0), a alternativa D corresponde `a quinta (´ındice 4) e a alternativa E corresponde `a quarta
(´ındice 3), resultando na sequˆencia 12043.
Ao analisar o sorteio das quest˜oes em ambas as varia¸oes, foram selecionadas sete QMs. No
entanto, para cada exame, apenas seis quest˜oes ser˜ao sorteadas, conforme a configura¸ao previamente
definida. No arquivo CSV, ´e poss´ıvel observar que apenas a quest˜ao Q5 apresentou varia¸oes diferentes
das demais quest˜oes (consulte a coluna K5, com quest˜oes de ID 2459 e 2461).
Uma estrutura de atribui¸ao de pesos diferentes para cada alternativa marcada ´e detalhada
no trabalho de Zampirolli et al. (2020), onde ao apresentadas abordagens para avaliar o desempenho
dos estudantes considerando a relevˆancia das respostas em QMs.
Aten¸ao:
´
E extremamente importante verificar se o gabarito gerado corresponde ao PDF que ser´a dis-
tribu´ıdo aos estudantes.
1. O ID da varia¸ao ser´a alterado toda vez que o bot˜ao “Criar-Varia¸oes” for acionado;
2. Esse n´umero de ID tamb´em ser´a impresso no PDF gerado, abaixo do cabe¸calho do exame,
em vermelho. Por exemplo, #E477#V60970 -- 2023-07-09 -- 14:58:34. No exemplo
mencionado, o exame possui o ID 477 e a varia¸ao ´e 60970;
3. No momento em que o bot˜ao “Criar-Varia¸oes” ´e acionado, uma “fotografia” das quest˜oes
selecionadas no exame ´e armazenada no banco de dados para cada varia¸ao. Essa “foto-
grafia” representa o estado atual das quest˜oes e ´e independente de eventuais altera¸oes
realizadas posteriormente pelo coordenador da disciplina ou professor que criou alguma
destas quest˜oes. Esse recurso de seguran¸ca garante que as varia¸oes do exame per-
mane¸cam consistentes, mesmo que haja modifica¸oes nas quest˜oes originais.
8.4 Criando o PDF do exame com QR+QM+QT
Ap´os a cria¸ao das varia¸oes, a pr´oxima etapa do processo de cria¸ao do exame consiste em
gerar o PDF contendo os QRs, as QMs e QTs, caso estejam presentes no exame. Essa etapa ´e
realizada ao clicar no bot˜ao “Criar-PDF” no painel de configura¸ao do exame.
Ao gerar o PDF, todas as varia¸oes do exame ser˜ao inclu´ıdas, garantindo a diversifica¸ao
das quest˜oes e respostas. Os QRs ser˜ao apresentados para os estudantes poderem preencher suas
respostas, e as QMs e QTs ser˜ao apresentadas conforme a configura¸ao do exame. A ordem das
quest˜oes impressas no PDF gerado segue a ordem de dificuldade de 1 a 5 para as QMs. Em seguida,
as QTs ser˜ao apresentadas na mesma ordem.
´
E de extrema importˆancia revisar o PDF gerado para garantir a correta formata¸ao das
Francisco de Assis Zampirolli MCTest 127
CAP
´
ITULO 8. EXAMES COM QR+QM E/OU QT
quest˜oes, respostas e demais elementos antes de disponibiliz´a-lo aos estudantes. Al´em disso, ´e alido
ressaltar que ser´a criado um PDF para cada turma selecionada no exame, conforme detalhado na
Se¸ao 6.3 Recorte II da tela de exame turmas. No contexto do exame criado nas se¸oes anteriores,
foi gerado o PDF ilustrado na Figura 8.5.
Figura 8.5: Recorte do PDF do exame gerado ap´os a ao do bot˜ao “Criar-PDF”.
Ap´os a gera¸ao do PDF do exame, ser´a enviado por e-mail ao professor o arquivo L
A
T
E
X
correspondente a cada turma selecionada. Esse arquivo pode ser ´util caso o professor deseje reali-
zar altera¸oes manuais no exame, embora seja importante ressaltar que o QRcode ´e espec´ıfico de
cada estudante, para garantir a corre¸ao autom´atica. No exemplo fornecido, o arquivo gerado ´e o
_e477_class_670_varID_60970.tex.
Al´em do arquivo L
A
T
E
X, o e-mail tamb´em conter´a um arquivo CSV anexado, que apresenta
as varia¸oes sorteadas para cada estudante. No exemplo mencionado, o arquivo ´e denominado
report_Exam_477_varID_60970_students_variations.csv. Caso haja mais turmas selecionadas
Francisco de Assis Zampirolli MCTest 128
8.4. CRIANDO O PDF DO EXAME COM QR+QM+QT
para o exame, todos os estudantes de todas as turmas ser˜ao listados em um ´unico arquivo CSV, que
corresponde ao exame com o ID 477.
Ao observar a Figura 8.6, ´e poss´ıvel verificar um trecho do e-mail encaminhado ao professor
ap´os acionar o bot˜ao “Criar-PDF” contendo os trˆes arquivos a seguir:
Arquivos anexados ao e-mail enviado ao professor
_e477_class_670_varID_60970.pdf
_e477_class_670_varID_60970.tex
report_Exam_477_varID_60970_students_variations.csv
Figura 8.6: E-mail enviado ao professor ap´os clicar no bot˜ao “Criar-PDF”.
Arquivo CSV, com as varia¸oes de cada estudante (as colunas ao separadas por v´ırgula)
Name Variation
Estudante Exemplo Sobrenome 1
Aten¸ao:
Foi adotado o seguinte crit´erio de sorteio de varia¸oes para os estudantes:
1. Se o n´umero de varia¸oes definido for menor que o n´umero de estudantes em cada turma,
ser´a sorteada uma varia¸ao para os estudantes baseado no hash gerado a partir do nome
e sobrenome do estudante. Dessa forma, ao clicar em “Criar-PDF”, ser´a atribu´ıda a
mesma varia¸ao para cada estudante;
2. Caso contr´ario, ou seja, se o n´umero de varia¸oes definido no exame for maior ou igual
que o n´umero de estudantes da turma, ser´a sorteada uma varia¸ao diferente para cada
estudante a cada vez que o bot˜ao “Criar-PDF” for acionado.
Francisco de Assis Zampirolli MCTest 129
CAP
´
ITULO 8. EXAMES COM QR+QM E/OU QT
8.5 Corrigindo exames com QR+QM
Ao corrigir exames que contˆem QR e QMs utilizando o MCTest, o processo ´e mais simples
em compara¸ao com a corre¸ao de exames apenas com QR, conforme detalhado na Se¸ao 7.3
Corrigindo exames com QR.
O gabarito de cada exame ´e armazenado no servidor do MCTest. Ele ´e identificado atrav´es
da decodifica¸ao do QRcode, sendo criptografado e compactado, como ilustrado na Figura 8.5.
´
E poss´ıvel verificar as respostas correspondentes ao gabarito apresentado no CSV na Se¸ao
8.3 Detalhando os gabaritos no arquivo CSV, considerando a varia¸ao 1, conforme apresentado
no CSV da se¸ao anterior. Portanto, as respostas para as quest˜oes Q1 at´e Q7 ao, respectivamente:
C, A, B, E, A, E, exata.
Imprimindo o PDF apresentado na Figura 8.5, selecionando a op¸ao “Retorno=Sim” e sal-
vando o exame, preenchendo as quest˜oes, digitalizando e enviando para o bot˜ao “Upload-PDF”, o
estudante receber´a o feedback apresentado na Figura 8.7 por e-mail.
Figura 8.7: Recorte do PDF do exame enviado como feedaback por e-mail ao estudante, ap´os a ao
do bot˜ao “Upload-PDF”.
Al´em disso, o professor receber´a as corre¸oes realizadas em um arquivo ZIP, conforme deta-
lhado na Se¸ao 7.3, que conter´a os seguintes arquivos:
Francisco de Assis Zampirolli MCTest 130
8.6. CONSIDERAC¸
˜
OES FINAIS
Arquivos gerados ao solicitar a corre¸ao do exame no bot˜ao “Upload-PDF”
_e477_fzampirolli@ufabc.edu.br_ScanFileQR_QM_RETURN__.csv
_e477_fzampirolli@ufabc.edu.br_ScanFileQR_QM_RETURN_irt.csv
_e477_fzampirolli@ufabc.edu.br_ScanFileQR_QM_RETURN_p001_s1_q006.png
_e477_fzampirolli@ufabc.edu.br_ScanFileQR_QM_RETURN_statistics.csv
Conforme explicado na Se¸ao 7.3.1 Arquivo CSV com as corre¸oes, o primeiro arquivo CSV,
*_.csv, apresenta o seguinte conte´udo:
Conte´udo do arquivo * .csv gerado (as colunas ao separadas por v´ırgula)
Pag ID Resp Quest Inv Grade Q1 Q2 Q3 Q4 Q5 Q6 K1 K2 K3 K4 K5 K6
1 00001 5 6 1 1 E/C D/A C/B B/E A 2/E 245612043 245503421 245830214 245741320 246104132 246032140
No arquivo em quest˜ao, ´e poss´ıvel observar nas colunas Q1 at´e Q6 a nota¸ao apresentada
na Se¸ao 7.3.1, agora com a adi¸ao de resposta marcada/resposta correta. Por exemplo, na
quest˜ao Q1 tem a nota¸ao E/C, indicando que a alternativa marcada pelo estudante foi a E, enquanto
a resposta correta ´e a C. Tamb´em ´e poss´ıvel notar a presen¸ca de uma quest˜ao inalida na coluna
Inv, referente `a quest˜ao Q6, que apresenta o conte´udo 2/E. Isso indica que duas alternativas foram
marcadas, sendo que na Figura 8.7 ´e poss´ıvel observar que a alternativa A foi marcada, mas tamb´em
foi realizada uma pequena marca¸ao na alternativa E, invalidando a quest˜ao. Neste exemplo, a ´unica
marca¸ao correta ´e na quest˜ao Q5.
A Figura 8.7 apresenta um relat´orio com os dados do estudante, a nota obtida e os enunciados
das quest˜oes, incluindo as marca¸oes realizadas e a alternativa correta de cada quest˜ao. As colunas
K1 at´e K6 foram previamente explicadas na Se¸ao 8.3 Detalhando os gabaritos no arquivo CSV.
8.6 Considera¸oes finais
Este cap´ıtulo abordou a cria¸ao e corre¸ao de exames que envolvem tanto o QR quanto as
QMs, al´em das QTs. Essa combina¸ao de quest˜oes permite uma avalia¸ao abrangente das habilidades
dos estudantes e tem sido amplamente utilizada na Especializa¸ao em Tecnologia e Sistemas de
Informa¸ao (TSI) da UFABC, como mencionado no Cap´ıtulo 1.
No processo de cria¸ao dos exames, ´e necess´ario criar as QMs e QTs, seguindo as instru¸oes
fornecidas neste cap´ıtulo, bem como nos Cap´ıtulos 4 Quest˜oes est´aticas e 5 Quest˜oes param´etricas.
A utiliza¸ao de arquivos TXT para criar as quest˜oes ao param´etricas ´e uma abordagem pr´atica e
eficiente para inseri-las no MCTest. Al´em disso, ´e fundamental criar as varia¸oes do exame por meio
do bot˜ao “Criar-Varia¸oes”. Essa etapa garante a diversifica¸ao das quest˜oes e respostas disponibi-
lizadas aos estudantes.
Ap´os a cria¸ao das varia¸oes, ´e poss´ıvel gerar o PDF do exame, incluindo os QR, QM e QT,
atrav´es do bot˜ao “Criar-PDF”.
´
E essencial revisar o PDF gerado para garantir a formata¸ao correta
das quest˜oes, respostas e demais elementos antes de disponibiliz´a-lo aos estudantes.
Francisco de Assis Zampirolli MCTest 131
CAP
´
ITULO 8. EXAMES COM QR+QM E/OU QT
Na etapa de corre¸ao dos exames, o processo ´e simplificado quando se utiliza o MCTest, pois
o gabarito ´e armazenado no servidor. O gabarito ´e identificado atrav´es da decodifica¸ao do QRcode
e pode ser verificado a partir do CSV dos gabaritos correspondentes, caso a op¸ao “Template” tenha
sido selecionada antes de clicar em “Criar-Varia¸oes”. As respostas corretas para cada quest˜ao podem
ser obtidas dessa forma, como exemplificado no cap´ıtulo.
Ao enviar o PDF preenchido pelos estudantes atrav´es do bot˜ao “Upload-PDF”, e selecionar a
op¸ao “Retorno=Sim”, o estudante receber´a um feedback detalhado por e-mail, contendo as corre¸oes
realizadas. O professor tamb´em receber´a um arquivo ZIP com as corre¸oes realizadas em formato
CSV, al´em de arios outros arquivos a citados anteriormente, facilitando a an´alise e o registro das
corre¸oes.
No pr´oximo cap´ıtulo, ser˜ao explorados os formatos de arquivos Aiken e XML ao criar varia¸oes
de um exame. Esses recursos ao altamente ´uteis para a cria¸ao de bancos de quest˜oes no Moodle.
Francisco de Assis Zampirolli MCTest 132
Cap´ıtulo 9
Varia¸oes de exames com QM+QT para o
Moodle
Conte´udo
9.1 Criando exames e exportando arquivos Aiken e XML . . . . . . . . . . . . . . 134
9.1.1 QM equa¸ao de primeiro grau idade . . . . . . . . . . . . . . . . . 134
9.1.2 QM equa¸ao da reta . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
9.1.3 QT com resposta exata ordena parte do vetor . . . . . . . . . . . . . 135
9.1.4 Criando exame e exportando as varia¸oes . . . . . . . . . . . . . . . . . 137
9.2 Importando arquivo XML no Moodle . . . . . . . . . . . . . . . . . . . . . . . 146
9.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Neste cap´ıtulo, ser´a apresentado um recurso interessante do MCTest que permite exportar
as varia¸oes de um exame para arquivos nos formatos Aiken e XML, que podem ser utilizados pelo
Moodle para criar um banco de quest˜oes. Ser´a utilizado um exemplo de quest˜ao da ´area do c´ırculo
apresentada no Cap´ıtulo 8 Exames com QR+QM e/ou QT, bem como a cria¸ao de novas quest˜oes
para exemplificar melhor o processo. O artigo de Zampirolli et al. (2021b) detalha este recurso, e
aqui ´e resumido todo o processo.
Embora o Moodle suporte a cria¸ao de quest˜oes parametrizadas, que utilizam valores curinga,
essas quest˜oes em limita¸oes em rela¸ao `as fun¸oes disponibilizadas pela linguagem PHP. Utilizar o
MCTest para criar o banco de quest˜oes ´e vantajoso porque suporta muito mais varia¸oes de quest˜oes.
´
E poss´ıvel, por exemplo, criar um exame contendo QMs e QTs, com respostas exatas. Em seguida, ´e
configurado o exame para gerar varia¸oes, salvando com um destes formatos Aiken ou XML.
´
E poss´ıvel
enao importar esses arquivos para o banco de quest˜oes no Moodle e criar uma atividade, incluindo
as quest˜oes rec´em-importadas. Dessa forma, ´e poss´ıvel criar atividades muito mais parametrizadas
do que as suportadas pelo Moodle utilizando os curingas.
Assim, apesar dos recursos dispon´ıveis no Moodle, ele ainda tem limita¸oes na cria¸ao de
133
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
quest˜oes. Neste cap´ıtulo, ser´a apresentado como tentar contornar essas restri¸oes para criar exames
de qualidade.
9.1 Criando exames e exportando arquivos Aiken e XML
Ser´a criado um exame com trˆes QMs param´etricas, com quatro alternativas e uma QT com
resposta exata. A primeira quest˜ao ´e a ´area do c´ırculo, apresentada no segundo exemplo da Se¸ao
5.1.2 QM param´etrica no MCTest. As trˆes pr´oximas quest˜oes est˜ao definidas nas pr´oximas se¸oes.
9.1.1 QM equa¸ao de primeiro grau idade
O odigo 9.1 apresenta um algoritmo que soluciona o problema de encontrar as idades de duas
pessoas, dada a soma e a diferen¸ca entre elas. O etodo calcular_idades recebe como parˆametros
esses dois valores e utiliza equa¸oes matem´aticas para determinar as idades da pessoa e do irm˜ao.
As idades ao retornadas como uma string no formato “x e y”, onde x e y ao as idades da pessoa e
do irm˜ao, respectivamente. Caso as idades ao sejam n´umeros inteiros positivos, o etodo retorna
uma string vazia.
O programa utiliza o m´etodo random.sample para gerar aleatoriamente pares de valores de
soma e diferen¸ca no intervalo de 2 a 30. Para cada par de valores gerado, o programa chama o m´etodo
calcular_idades e armazena as respostas alidas em uma lista. A alternativa correta da quest˜ao,
apresentada na linha 36, considera os dados do enunciado e utiliza o etodo calcular_idades para
determinar as idades dos irm˜aos apresentados na Figura 9.1.
Figura 9.1: Recorte do PDF gerado para a quest˜ao das idades dos irm˜aos, referente ao odigo 9.1.
9.1.2 QM equa¸ao da reta
O odigo 9.2 implementa um algoritmo para gerar quatro equa¸oes de reta aleat´orias a partir
de pontos com coordenadas inteiras entre 1 e 9. O etodo equacao_reta ´e utilizado para calcular
a equa¸ao da reta que passa pelos dois pontos fornecidos. Para evitar duplicatas, o odigo verifica
se a equa¸ao a est´a na lista de respostas antes de adicion´a-la. Caso uma reta vertical seja gerada,
Francisco de Assis Zampirolli MCTest 134
9.1. CRIANDO EXAMES E EXPORTANDO ARQUIVOS AIKEN E XML
Quest˜ao:
1 Uma pessoa tem x anos e seu irm~ao tem y anos. Se a diferen¸ca entre suas idades ´e
2 de [[code:diferenca]] anos, e a soma das idades ´e [[code:soma]], determine as
3 idades da pessoa e do irm~ao, respectivamente.
4
5 [[def:
6 import random
7
8 def calcular_idades(soma, diferenca):
9 """Calcula idades, dados soma e diferen¸ca.
10 x - y = diferenca e x + y = soma ==> 2x = (soma + diferenca)"""
11
12 # Calcular a idade da pessoa
13 x = (soma + diferenca) / 2
14
15 # Calcular a idade do irm~ao
16 y = soma - x
17
18 if not x%1 and x>0 and y>0: # somente inteiros positivos
19 return f"{x:2.0f} e {y:2.0f}"
20 else:
21 return ""
22
23 # Lista de respostas
24 respostas = []
25
26 # Gerar 4 equa¸c~oes de reta aleat´orias
27 while len(respostas) < 4:
28 # Gerar 2 valores aleat´orios
29 soma, diferenca = random.sample(range(2, 30), 2)
30 r = calcular_idades(soma, diferenca)
31 if not r: # somente inteiros positivos
32 continue
33 if r not in respostas: # respostas distintas
34 respostas.append(r)
35
36 # [[code:respostas[3]]] # ´ultima ser´a a correta
37 ]]
odigo 9.1: Exemplo de QM param´etrica para calcular as idades dos irm˜aos.
ela ´e ignorada. A ´ultima alternativa da quest˜ao na linha 26 considera os dois pontos fornecidos no
enunciado, apresentado na Figura 9.2.
9.1.3 QT com resposta exata ordena parte do vetor
Na Se¸ao 8.1 Criando QMs e uma QT, foi apresentado o odigo 8.1, que descreve como
criar uma QT com resposta exata. Nesta se¸ao, ser´a apresentado um exemplo pr´atico deste recurso,
por meio da adapta¸ao dos odigos 5.12 e 5.12 de quest˜ao param´etrica integrada ao VPL.
Francisco de Assis Zampirolli MCTest 135
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Quest˜ao:
1 Qual ´e a equa¸c~ao da reta que passa pelos pontos ([[code:x1]], [[code:y1]]) e
2 ([[code:x2]], [[code:y2]])?
3
4 [[def:
5 import random
6
7 def equacao_reta(x1, y1, x2, y2):
8 """Calcula a equa¸c~ao da reta que passa pelos pontos (x1, y1) e (x2, y2)"""
9 m = (y2 - y1) / (x2 - x1)
10 b = y1 - m * x1
11 return f"y = {m:.2f}x + {b:.2f}"
12
13 # Lista de respostas
14 respostas = []
15
16 # Gerar 4 equa¸c~oes de reta aleat´orias e distintas
17 while len(respostas) < 4:
18 x1,y1,x2,y2 = random.sample(range(1,10), 4) # Gerar 2 pontos aleat´orios
19 if x1 == x2: # A reta ´e vertical: n~ao ´e poss´ıvel calcular a inclina¸c~ao m
20 continue
21
22 equacao = equacao_reta(x1, y1, x2, y2)
23 if equacao not in respostas:
24 respostas.append(equacao)
25
26 # [[code:respostas[3]]] # ´ultima ser´a a correta
27 ]]
odigo 9.2: Exemplo de QM param´etrica para calcular a equa¸ao da reta.
Figura 9.2: Recorte do PDF gerado para a quest˜ao da equa¸ao da reta definida no odigo 9.2.
Os odigos 9.3 e 9.4 implementam uma quest˜ao param´etrica exata, utilizando o etodo
ordena_parte_vetor. Esse m´etodo recebe como entrada um vetor de n´umeros inteiros, um ´ındice
Francisco de Assis Zampirolli MCTest 136
9.1. CRIANDO EXAMES E EXPORTANDO ARQUIVOS AIKEN E XML
de in´ıcio e um ´ındice de fim, e ordena apenas uma parte do vetor, delimitada pelos ´ındices de in´ıcio
e fim.
O m´etodo utiliza um algoritmo de ordena¸ao por sele¸ao simples, que percorre o trecho do
vetor a ser ordenado e, em cada itera¸ao, seleciona o menor elemento da parte ao ordenada e o
coloca em sua posi¸ao correta na parte ordenada. Esse algoritmo ´e implementado por meio de dois
la¸cos aninhados: o primeiro percorre os elementos da parte do vetor a ser ordenada, enquanto o
segundo percorre os elementos ainda ao ordenados. A cada itera¸ao do segundo la¸co, ´e verificado
se o elemento atual ´e menor do que o elemento selecionado pelo primeiro la¸co. Se for o caso, os
elementos ao trocados de posi¸ao. O etodo retorna o vetor ordenado, e a ordena¸ao ´e realizada
in-place, ou seja, o vetor original ´e modificado diretamente pelo etodo. A Figura 9.3 apresenta um
exemplo para esta quest˜ao.
A quest˜ao apresentada nos odigos 9.3 e 9.4 a est´a preparada para ser aplicada em atividades
VPL, seguindo os odigos 5.12 e 5.12. No entanto, a parte cr´ıtica ´e a formata¸ao da quest˜ao, limitada
pelo Moodle, como ser˜ao apresentadas nas pr´oximas se¸oes.
Esta quest˜ao de ordenar vetor ´e um exemplo t´ıpico que ao pode ser implementado no Moodle
utilizando os valores curinga. Isso ilustra que para quest˜oes mais complexas, o MCTest ´e uma
ferramenta adequada para criar um banco de quest˜oes e export´a-lo para o Moodle.
Quest˜ao:
1 Dado um vetor de inteiros de tamanho \( n = [[code:n]]\), ordenar o trecho do
2 vetor que come¸ca no ´ındice \( inicio = [[code:inicio]] \) e termina no ´ındice
3 \( fim = [[code:fim]]\). Onde, \( 0<in´ıcio<fim<n \), ou seja, o trecho a ser
4 ordenado est´a entre in´ıcio (inclusive) e fim (inclusive). Vale ressaltar que
5 os ´ındices do vetor come¸cam em 0 e terminam em \( n-1\).
6
7 Considere esta entrada:}
8 [[code:caso0_inp]]
9
10 %%{[[code:caso0_out]]}%%
odigo 9.3: Exemplo de quest˜ao param´etrica exata Parte 1: Descri¸ao de quest˜ao.
9.1.4 Criando exame e exportando as varia¸oes
Com as quest˜oes definidas anteriormente, ´e poss´ıvel agora criar um exame seguindo as ins-
tru¸oes apresentadas no Cap´ıtulo 6 Vis˜ao geral dos exames, e exportar as varia¸oes necess´arias.
Ap´os a cria¸ao do exame, ´e poss´ıvel selecionar as quatro quest˜oes apresentadas na Figura 9.4.
Os detalhes do exame ao apresentados na Figura 9.5.
´
E importante notar que foi decidido criar
somente cinco varia¸oes.
Para prosseguir com a cria¸ao das varia¸oes, ´e necess´ario selecionar as op¸oes “Aiken” e
“XML”, conforme ilustrado na Figura 9.6, e em seguida clicar em “Criar-Varia¸oes”. O professor
receber´a um e-mail contendo dois anexos: um no formato Aiken (TXT) e outro no formato XML,
Francisco de Assis Zampirolli MCTest 137
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Quest˜ao:
1 [[def:
2 import json, numpy as np
3
4 # Passo 1: Criar os par^ametros do enunciado da quest~ao
5 n = np.random.randint(20,40)
6 inicio = np.random.randint(2,n//2-2)
7 fim = np.random.randint(n//2+2,n-2)
8
9 # Passo 2: Criar os casos de teste
10 inp_list, out_list = [], [] # Listas vazias para armazenar os casos de teste
11 casos_teste = 1 # umero de casos de teste desejado
12
13 def ordena_parte_vetor(vetor,inicio,fim):
14 """ Ordena¸c~ao da parte do vetor entre inicio e fim"""
15 for i in range(inicio, fim+1):
16 for j in range(i+1, fim+1):
17 if vetor[i] > vetor[j]:
18 vetor[i], vetor[j] = vetor[j], vetor[i]
19 # Retorno do vetor ordenado
20 return vetor
21
22 # Para cada caso de teste:
23 for i in range(casos_teste):
24
25 #>>>> begin - casos de teste
26 # Gerar valores aleat´orios entre 0 e 9 para a matriz
27 v = np.random.randint(10, size=n)
28
29 # Criar a entrada do caso de teste como uma string
30 inp = ' '.join(str(i) for i in v) + '\n'
31
32 # Calcular o vetor de sa´ıda
33 out = ' '.join(str(i) for i in ordena_parte_vetor(v,inicio,fim)) + '\n'
34 #<<<< end - casos de teste
35
36 # Adicionar a entrada e sa´ıda do caso de teste `as listas
37 inp_list.append(inp), out_list.append(out)
38
39 # Passo 3: Criar o dicion´ario com os casos de teste
40 cases = {}
41 cases['input'] = np.array(inp_list).tolist()
42 cases['output'] = np.array(out_list).tolist()
43
44 # Passo 4: Mostrar um exemplo no enunciado da quest~ao
45 caso0_inp, caso0_out = cases['input'][0], cases['output'][0]
46 ]]
odigo 9.4: Exemplo de quest˜ao param´etrica exata Parte 2: Bloco de odigo.
Francisco de Assis Zampirolli MCTest 138
9.1. CRIANDO EXAMES E EXPORTANDO ARQUIVOS AIKEN E XML
Figura 9.3: Recorte do PDF gerado para a quest˜ao com resposta exata definida pelos odigos 9.3 e
9.4.
Figura 9.4: Recorte da tela do exame com as quatro quest˜oes marcadas.
Figura 9.5: Recorte da tela do exame com os detalhes da configura¸ao.
como mostrado na Figura 9.7. No caso deste exame com ID 480 rec´em-criado, os arquivos recebidos
ser˜ao:
Francisco de Assis Zampirolli MCTest 139
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Arquivos em formatos Aiken (TXT) e XML
report_Exam_480_variations_DB_aiken.txt
report_Exam_480_variations_DB.xml
Figura 9.6: Recorte da tela do exame com os detalhes da configura¸ao.
Figura 9.7: Recorte do e-mail recebido ap´os clicar em “Criar-Varia¸oes”.
Detalhando o arquivo no formato Aiken
A seguir, ao apresentadas as trˆes QMs da primeira varia¸ao. Vale ressaltar que, na Figura
9.5, foram solicitadas cinco varia¸oes no formato Aiken, geradas pelo MCTest. No entanto, antes de
import´a-las no Moodle, ´e necess´ario remover os coment´arios adicionados pelo MCTest apenas para
controle. Em vers˜oes de produ¸ao do MCTest, esses coment´arios podem ser facilmente removidos.
Al´em disso, um aspecto desagrad´avel deste formato ´e que ao ´e poss´ıvel importar quest˜oes com
apenas resposta exata.
Francisco de Assis Zampirolli MCTest 140
9.1. CRIANDO EXAMES E EXPORTANDO ARQUIVOS AIKEN E XML
Conte´udo do arquivo * aiken.txt, varia¸ao 0 e quest˜ao 1.
############# variation ########## 0
#c:1 #id:2465 #topic:Topico Exemplo #type:QM #diff:1
Uma pessoa tem x anos e seu irm~ao tem y anos. Se a diferen¸ca entre suas idades ´e de
2 anos, e a soma das idades ´e 28, determine as idades da pessoa e do irm~ao,
respectivamente.
A) 15 e 13
B) 20 e 1
C) 11 e 2
D) 18 e 1
ANSWER: A
...
Conte´udo do arquivo * aiken.txt, varia¸ao 0 e quest˜ao 2.
...
#c:2 #id:2449 #topic:Topico Exemplo #type:QM #diff:1
Qual ´e a ´area do ırculo de raio \( 25 \)?
% coment´ario em LaTex. Observe que a vari´avel raio1, ap´os "code:"
% foi definida na linha 18 abaixo
A) 2827.43
B) 3019.07
C) 1809.56
D) 1963.50
ANSWER: D
...
Conte´udo do arquivo * aiken.txt, varia¸ao 0 e quest˜ao 3.
...
#c:3 #id:2464 #topic:Topico Exemplo #type:QM #diff:1
Qual ´e a equa¸c~ao da reta que passa pelos pontos (2, 7) e (8, 6)?
A) y = 1.00x + -2.00
B) y = -0.17x + 7.33
C) y = 2.00x + 1.00
D) y = 1.00x + 4.00
ANSWER: B
...
Francisco de Assis Zampirolli MCTest 141
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Detalhando o arquivo no formato XML para QM
A seguir ´e detalhado o arquivo no formato XML que cont´em a primeira QM da primeira
varia¸ao. Diferentemente do formato Aiken, os comenarios iniciados com o s´ımbolo “#” neste
formato XML ao precisam ser removidos. No entanto, antes de import´a-las no Moodle, ´e necess´ario
remover os comenarios em L
A
T
E
X dentro de cada quest˜ao e gerar novamente o arquivo. Realizar esse
processo diretamente no arquivo XML pode ser mais complexo e propenso a erros, especialmente se
for necess´ario gerar muitas varia¸oes. Por isso, ´e recomendado gerar uma ´unica varia¸ao e verificar
como ela ´e formatada no Moodle antes de prosseguir com a gera¸ao de outras varia¸oes.
Cabe salientar que a sintaxe no formato XML ´e complexa e ao ´e destinada ao consumo
humano. Por isso, foi apresentada somente a primeira QM gerada a seguir.
Foi criada, no odigo abaixo, uma hierarquia de categorias para as quest˜oes com base nas suas
caracter´ısticas, tais como tipo, opico e n´ıvel de dificuldade. Essa organiza¸ao visa tornar o banco
de quest˜oes mais estruturado no Moodle. Al´em disso, foi criada uma categoria para cada quest˜ao
do MCTest, facilitando a localiza¸ao das quest˜oes no Moodle. No exemplo a seguir, ´e apresentada a
categoria multichoice/Topico Exemplo/diff1/´area ırculo - ex.1.
Conte´udo do arquivo *.xml, varia¸ao 0 e quest˜ao 1 categoria.
<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<!-- category: #id:2449 #type:multichoice #topic:Topico Exemplo #diff:1 #descr:´area ırculo - ex.1 -->
<question type="category">
<category>
<text>
$course$/top/multichoice/Topico Exemplo/diff1/´area ırculo - ex.1
</text>
</category>
<info format="moodle_auto_format">
<text></text>
</info>
<idnumber></idnumber>
</question>
...
Francisco de Assis Zampirolli MCTest 142
9.1. CRIANDO EXAMES E EXPORTANDO ARQUIVOS AIKEN E XML
Conte´udo do arquivo *.xml, varia¸ao 0 e quest˜ao 1.
...
<!-- question: #c:2 #id:2449 #type:multichoice #topic:Topico Exemplo #diff:1 #descr:´area ırculo - ex.1 #var:1 -->
<question type="multichoice">
<name>
<text>Topico: Topico Exemplo Dificuldade: 1 </text>
</name>
<questiontext format="moodle_auto_format">
<text><![CDATA[<p> Qual ´e a ´area do ırculo de raio \( 25 \)?
% coment´ario em LaTex. Observe que a vari´avel raio1, ap´os "code:"
% foi definida na linha 18 abaixo
<br></p>]]>
</text>
</questiontext>
<generalfeedback format="moodle_auto_format">
<text></text>
</generalfeedback>
<defaultgrade>1.0000000</defaultgrade>
<penalty>0.3333333</penalty>
<hidden>0</hidden>
<idnumber></idnumber>
<single>true</single>
<shuffleanswers>true</shuffleanswers>
<answernumbering>abc</answernumbering>
<correctfeedback format="moodle_auto_format">
<text>Sua resposta est´a correta.</text>
</correctfeedback>
<partiallycorrectfeedback format="moodle_auto_format">
<text>Sua resposta est´a parcialmente correta.</text>
</partiallycorrectfeedback>
<incorrectfeedback format="moodle_auto_format">
<text>Sua resposta est´a incorreta.</text>
</incorrectfeedback>
<shownumcorrect/>
...
Francisco de Assis Zampirolli MCTest 143
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Conte´udo do arquivo *.xml, varia¸ao 0 e quest˜ao 1 alternativas.
...
<answer fraction="0" format="moodle_auto_format">
<text><![CDATA[<p> 2827.43
<br></p>]]></text>
<feedback format="moodle_auto_format">
<text></text>
</feedback>
</answer>
<answer fraction="0" format="moodle_auto_format">
<text><![CDATA[<p> 3019.07
<br></p>]]></text>
<feedback format="moodle_auto_format">
<text></text>
</feedback>
</answer>
<answer fraction="0" format="moodle_auto_format">
<text><![CDATA[<p> 1809.56
<br></p>]]></text>
<feedback format="moodle_auto_format">
<text></text>
</feedback>
</answer>
<answer fraction="100" format="moodle_auto_format">
<text><![CDATA[<p> 1963.50
<br></p>]]></text>
<feedback format="moodle_auto_format">
<text></text>
</feedback>
</answer>
</question>
...
Detalhando o arquivo no formato XML quest˜ao com resposta exata
A seguir, ser˜ao apresentados os detalhes do arquivo XML referente `a quest˜ao com resposta
exata. A hierarquia desta quest˜ao foi top/shortanswer/Topico Exemplo/diff1/resposta exata.
´
E relevante ressaltar que essa quest˜ao foi agrupada na categoria shortanswer, diferentemente das
Francisco de Assis Zampirolli MCTest 144
9.1. CRIANDO EXAMES E EXPORTANDO ARQUIVOS AIKEN E XML
QMs, que utilizam a categoria multichoice.
´
E importante lembrar que ´e necess´ario criar as quest˜oes
no formato adequado no MCTest para poderem ser importadas e exibidas corretamente no Moodle,
que possui sua pr´opria formata¸ao.
Conte´udo do arquivo *.xml, varia¸ao 0 e quest˜ao com resposta exata categoria.
...
<!-- category: #id:2466 #type:shortanswer #topic:Topico Exemplo #diff:1 #descr:resposta exata - vetor -->
<question type="category">
<category>
<text>
$course$/top/shortanswer/Topico Exemplo/diff1/resposta exata - vetor
</text>
</category>
<info format="moodle_auto_format">
<text></text>
</info>
<idnumber></idnumber>
</question>
...
Conte´udo do arquivo *.xml, varia¸ao 0 e quest˜ao com resposta exata quest˜ao.
...
<!-- question: #c:4 #id:2466 #type:shortanswer #topic:Topico Exemplo #diff:1 #descr:resposta exata - vetor #var:1-->
<question type="shortanswer">
<name>
<text>Topico: Topico Exemplo Dificuldade: 1 </text>
</name>
<questiontext format="moodle_auto_format">
<text>
<![CDATA[<p> Dado um vetor de inteiros de tamanho \( n = 31\), ordenar o tre$$ $$cho do
vetor que come¸ca no ´ındice \( inicio = 10 \) e termina no ´ındice
\( fim = 24\). Onde, \( 0<in´ıcio<fim<n \)n, ou seja, o tre$$ $$cho a ser
ordenado est´a nos limites do vetor. Vale ressaltar que os ´ındices do
vetor come¸cam em 0 e terminam em \( n-1\).
Considere esta entrada:
8 1 4 1 2 0 1 6 1 9 6 3 7 2 7 8 9 3 7 2 0 7 6 4 3 0 1 1 9 4 1
<br></p>]]>
</text>
</questiontext>
...
Francisco de Assis Zampirolli MCTest 145
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Conte´udo do arquivo *.xml, varia¸ao 0 e quest˜ao com resposta exata resposta.
...
<generalfeedback format="moodle_auto_format">
<text></text>
</generalfeedback>
<defaultgrade>1.0000000</defaultgrade>
<penalty>0.3333333</penalty>
<hidden>0</hidden>
<idnumber></idnumber>
<single>true</single>
<shuffleanswers>true</shuffleanswers>
<answernumbering>abc</answernumbering>
<correctfeedback format="moodle_auto_format">
<text>Sua resposta est´a correta.</text>
</correctfeedback>
<partiallycorrectfeedback format="moodle_auto_format">
<text>Sua resposta est´a parcialmente correta.</text>
</partiallycorrectfeedback>
<incorrectfeedback format="moodle_auto_format">
<text>Sua resposta est´a incorreta.</text>
</incorrectfeedback>
<shownumcorrect/>
<answer fraction="100" format="moodle_auto_format">
<text>
8 1 4 1 2 0 1 6 1 9 0 2 2 3 3 3 4 6 6 7 7 7 7 8 9 0 1 1 9 4 1
</text>
</answer>
</question>
...
9.2 Importando arquivo XML no Moodle
Como o formato Aiken apresenta algumas limita¸oes, como a impossibilidade de criar quest˜oes
com resposta exata, ser´a apresentado a seguir um tutorial para importar e criar question´arios no
Francisco de Assis Zampirolli MCTest 146
9.3. CONSIDERAC¸
˜
OES FINAIS
Moodle usando o formato XML.
Inicialmente, ´e necess´ario criar um question´ario no Moodle e acessar a op¸ao “Banco de Da-
dos”, presente no menu de configura¸oes, representado por uma engrenagem. Em seguida, basta
escolher a op¸ao “Importa¸ao”, selecionar o formato XML e mover o arquivo correspondente para a
´area especificada. Ao clicar em “Importar”, as 20 quest˜oes ser˜ao carregadas e poder˜ao ser visuali-
zadas, como ilustrado na Figura 9.8 para uma QM e na Figura 9.9 para uma quest˜ao com resposta
exata. Na Figura 9.5 foram 3 QMs, 1 QT e 5 varia¸oes ((3 + 1) 5 = 20).
Vale ressaltar que o uso de formata¸ao em L
A
T
E
X no Moodle apresenta muitas limita¸oes em
compara¸ao com o PDF gerado pelo MCTest, como ilustrado na Figura 9.9.
Figura 9.8: Exemplo de QM no Moodle.
Em termos de compara¸ao, observe na Figura 9.10 como seria um exame em PDF gerado
pelo MCTest com essas varia¸oes das 3 QMs, seguido por uma QT com resposta exata. O professor
tamb´em pode corrigir esse estilo de exame digitalizando-o para corrigir as QMs. Quanto `a QT, o
professor pode corrigi-la manualmente, comparando a resposta exata do estudante com o gabarito
gerado pelo MCTest ao escolher a op¸ao “Template” antes de clicar em “Criar-Varia¸oes”. O artigo de
Zampirolli et al. (2020) detalha esse processo de corre¸ao autom´atica utilizando a op¸ao “Template”,
tamb´em resumido na Se¸ao 12.2.2 Artigo descrevendo o MCTest em conjunto com Google Forms
e Google Sheets.
9.3 Considera¸oes finais
Neste cap´ıtulo apresentou-se a utiliza¸ao do recurso do MCTest que permite exportar varia¸oes
de um exame nos formatos Aiken e XML para o Moodle, a fim de criar um banco de quest˜oes.
Utilizou-se uma quest˜ao apresentada no Cap´ıtulo 8 - Exames com QR+QM e/ou QT, al´em de criar
novas quest˜oes para exemplificar o processo.
Francisco de Assis Zampirolli MCTest 147
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Figura 9.9: Exemplo da quest˜ao exata do Moodle.
Figura 9.10: Exemplo exame gerado pelo MCTest.
Francisco de Assis Zampirolli MCTest 148
9.3. CONSIDERAC¸
˜
OES FINAIS
Verificou-se que o uso do MCTest para criar o banco de quest˜oes ´e vantajoso em compara¸ao
`a cria¸ao de quest˜oes parametrizadas diretamente no Moodle, uma vez que o MCTest suporta uma
variedade maior de parametriza¸oes de quest˜oes. Ap´os configurar o exame para gerar varia¸oes, ´e
poss´ıvel export´a-las nos formatos Aiken ou XML e import´a-las para o banco de quest˜oes do Moodle,
criando uma atividade com as quest˜oes importadas. Dessa forma, ´e poss´ıvel criar atividades muito
mais parametrizadas do que aquelas suportadas apenas pelos valores curinga no Moodle.
Na se¸ao de cria¸ao do exame e exporta¸ao das varia¸oes, foram demonstrados exemplos de
como criar um exame com trˆes QMs param´etricas e uma QT com resposta exata, explicando como
o MCTest pode ser utilizado para gerar varia¸oes.
Foi detalhado o conte´udo dos arquivos nos formatos Aiken e XML para as QMs e QTs com
respostas exatas, destacando a necessidade de remover os coment´arios adicionados pelo MCTest
nos arquivos Aiken antes de import´a-los para o Moodle. Quanto aos arquivos XML, ressaltou-se
a complexidade da sintaxe e a importˆancia de remover os coment´arios em L
A
T
E
X dentro de cada
quest˜ao no MCTest. Tamb´em foi necess´ario prestar aten¸ao especial `a formata¸ao utilizada, como a
matem´atica, a que pode ser inalida no Moodle.
Por fim, apresentou-se um tutorial para importar e criar question´arios no Moodle utilizando o
formato XML, mostrando como acessar a op¸ao de importa¸ao, escolher o formato XML e carregar o
arquivo correspondente. Demonstrou-se que as quest˜oes ao carregadas no Moodle, mesmo que haja
algumas limita¸oes na formata¸ao em L
A
T
E
X.
Concluiu-se que o uso do MCTest em conjunto com o Moodle ´e uma abordagem eficaz para
criar exames com uma variedade maior de quest˜oes parametrizadas, superando as limita¸oes do
Moodle na cria¸ao dessas quest˜oes. A exporta¸ao das varia¸oes nos formatos Aiken e XML permite
uma integra¸ao mais fluida e flex´ıvel entre as duas plataformas, possibilitando a cria¸ao de atividades
mais personalizadas e de qualidade no Moodle.
No pr´oximo cap´ıtulo, ser˜ao abordados a cria¸ao de exames contendo quest˜oes com corre¸ao
autom´atica em atividades VPL do Moodle, apresentando exemplos e detalhando todo o processo de
corre¸ao autom´atica desses exames.
Francisco de Assis Zampirolli MCTest 149
CAP
´
ITULO 9. VARIAC¸
˜
OES DE EXAMES COM QM+QT PARA O MOODLE
Francisco de Assis Zampirolli MCTest 150
Cap´ıtulo 10
Exames com MCTest+Moodle+VPL
Conte´udo
10.1 Criando um exame com QT integrado ao VPL . . . . . . . . . . . . . . . . . . 152
10.1.1 Criando uma nova quest˜ao integrada ao VPL . . . . . . . . . . . . . . 152
10.1.2 Criando as varia¸oes e imprimindo o PDF do exame . . . . . . . . . . . 156
10.1.3 Criando e configurando a atividade VPL para o exame . . . . . . . . . 157
10.1.4 Solu¸oes da atividade VPL para o exame . . . . . . . . . . . . . . . . . 159
10.2 Detalhando o arquivo linker.json . . . . . . . . . . . . . . . . . . . . . . . . 160
10.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Neste cap´ıtulo, ser˜ao descritos exames que contˆem quest˜oes dissertativas (QTs) param´etricas,
nas quais os estudantes devem submeter exerc´ıcios de programa¸ao (EPs) em atividades VPL do
Moodle. Esses tipos de quest˜oes foram detalhados na Se¸ao 5.3 QT param´etrica, com odigo. A
quest˜ao de parcelas sem juros criada nesta se¸ao ser´a utilizada em um novo exame, no qual ser´a
detalhado todo o processo neste cap´ıtulo.
Esse tipo de exame tem sido amplamente utilizado na UFABC em disciplinas que envolvem
programa¸ao, como Bases Computacionais da Ciˆencia (equivalente `a CS0 Computer Science 0),
para estudantes ingressantes. Nessa disciplina, a linguagem de programa¸ao Python ´e empregada
juntamente com a biblioteca pandas, permitindo que os estudantes pratiquem estat´ısticas em arquivos
no formato CSV.
Outra disciplina que faz uso frequente dessa integra¸ao com o plugin VPL ´e a de Processamento
da Informa¸ao (PI), equivalente `a CS1 (Computer Science 1). CS1 representa a primeira disciplina
introdut´oria em Ciˆencia da Computa¸ao, geralmente oferecido no primeiro ano de gradua¸ao em
cursos dessa ´area. A defini¸ao CS1 foi estabelecida pela ACM (Association for Computing Machi-
nery), uma das principais associa¸oes profissionais de Ciˆencia da Computa¸ao do mundo (HOGAN;
LI; RAJ, 2023).
Ao longo dos anos, diversos professores da UFABC tˆem contribu´ıdo para o desenvolvimento de
151
CAP
´
ITULO 10. EXAMES COM MCTEST+MOODLE+VPL
quest˜oes, resultando em um total de 2271 quest˜oes cadastradas at´e agosto de 2023. Dessas quest˜oes,
643 ao do tipo param´etricas, como indicado em mctest.ufabc.edu.br.
´
E importante destacar que, embora essa metodologia de avalia¸ao seja adotada em diversas
turmas, muitos professores ainda ao utilizam essa abordagem ou outras similares. Isso pode indicar
uma falta de padroniza¸ao dos conte´udos apresentados aos estudantes, o que pode prejudicar o
processo de ensino-aprendizagem (ZAMPIROLLI et al., 2018).
Todo o processo de cria¸ao de exames descrito nos cap´ıtulos anteriores pode ser aplicado a
exames que utilizam a integra¸ao do VPL do Moodle, com algumas adapta¸oes. Este cap´ıtulo apre-
sentar´a especificamente essa integra¸ao, que contou com a ajuda do Prof. Dr. Paulo Henrique Pisani
e de seu orientando Heitor Rodrigues Savegnago na adapta¸ao dos arquivos de configura¸ao do VPL.
Essa colabora¸ao resultou em diversas publica¸oes a partir de 2019, resumidas em vision.ufabc.edu.br.
Neste cap´ıtulo, ao ser˜ao detalhadas as modifica¸oes realizadas nesses arquivos de configura¸ao, mas
apenas ser´a destacado como incluir os arquivos gerados pelo MCTest, necess´arios para a corre¸ao
autom´atica no plugin VPL.
10.1 Criando um exame com QT integrado ao VPL
Como a foi introduzido na Se¸ao 5.3 QT param´etrica, com odigo, o VPL ´e um plugin do
Moodle para corre¸ao de atividades em que os estudantes devem submeter seus EPs para corre¸ao
autom´atica. Basicamente, ao dois arquivos criados pelo MCTest que devem ser inseridos na atividade
VPL do Moodle. O primeiro ´e o arquivo linker.json, que cont´em todas as varia¸oes do exame,
juntamente com os detalhes de cada quest˜ao, incluindo os casos de teste. Esse arquivo ´e enviado
para o e-mail do professor ao clicar no bot˜ao “Criar-Varia¸oes” no formul´ario de exame. Assim,
toda vez que o professor clicar nesse bot˜ao, ser´a gerado um novo conjunto de varia¸oes que dever´a
ser atualizado na atividade VPL. O segundo arquivo ´e o students_variations.csv, que cont´em a
varia¸ao do exame sorteada para cada estudante. Esse arquivo ´e enviado para o e-mail do professor
ao clicar no bot˜ao “Criar-PDF”, tamb´em no formul´ario do exame.
Nesta se¸ao, um exame ser´a elaborado utilizando a quest˜ao sobre parcelas sem juros, conforme
demonstrado nos odigos 5.12 e 5.13. Uma vers˜ao alterada dessa quest˜ao tamb´em foi ilustrada na
Figura 5.5. Posteriormente, uma quest˜ao simples ser´a acrescentada, com integra¸ao ao VPL, para
ser inclu´ıda neste novo exame.
10.1.1 Criando uma nova quest˜ao integrada ao VPL
Considere a seguinte quest˜ao sobre matrizes para a disciplina CS1, apresentada nos odigos
10.1 e 10.2. Nesta quest˜ao, o usu´ario deve ler os elementos de uma matriz de dimens˜oes param´etricas,
calcular a soma dos elementos e exibir o resultado, como apresentado na Figura 10.1.
O odigo 10.2 utiliza as bibliotecas json e numpy para criar valores param´etricos e casos
de teste de uma quest˜ao envolvendo matrizes. No passo 1, ao definidos os parˆametros Linhas e
Colunas, que representam o tamanho da matriz e ser˜ao inclu´ıdos no enunciado da quest˜ao. No passo
2, ao criados casos de teste com valores aleat´orios na matriz e, em seguida, ´e gerada a entrada e
Francisco de Assis Zampirolli MCTest 152
10.1. CRIANDO UM EXAME COM QT INTEGRADO AO VPL
Quest˜ao:
1 Considere uma matriz de inteiros de dimens~oes \([[code:Linhas]] \times
2 [[code:Colunas]]\). Escreva um programa capaz de calcular a soma de todos
3 os elementos dessa matriz. O programa deve solicitar ao usu´ario os umeros
4 inteiros da matriz, linha por linha. Ao final, o programa deve exibir a
5 soma de todos os elementos da matriz. Veja exemplo a seguir: \\
6
7 \noindent\textbf{Exemplo de Entrada:}
8 \begin{verbatim}
9 [[code:caso0_inp]]
10 \end{verbatim}
11
12 \noindent\textbf{Exemplo de Sa´ıda:}
13 \begin{verbatim}
14 [[code:caso0_out]]
15 \end{verbatim}
16
17 % necess´ario para gerar casos de testes no moodle
18 \begin{comment}
19 [[code:moodle_cases]]
20 \end{comment}
odigo 10.1: Exemplo de quest˜ao com matriz utilizando MCTest+Moodle+VPL Parte 1: Descri¸ao
de quest˜ao.
sa´ıda para cada caso. O etodo matriz2texto converte a matriz em formato de texto. Os casos
de teste ao armazenados em listas de entrada (inp_list) e sa´ıda (out_list). No passo 3, ´e criado
um dicion´ario com os casos de teste e, em seguida, ´e convertido em formato JSON. Finalmente, no
passo 4, ´e mostrado um exemplo no enunciado da quest˜ao, exibindo a entrada e sa´ıda do primeiro
caso de teste. O odigo pode ser utilizado para gerar casos de teste para uma quest˜ao relacionada a
matrizes e alculos.
Um etodo mais gen´erico para matriz2texto ´e apresentado no odigo 10.3 para formatar
uma matriz com elementos de arios d´ıgitos. O m´etodo recebe uma matriz f representada como uma
matriz numpy ndarray. O m´etodo tem o prop´osito de converter essa matriz em uma representa¸ao de
texto adequada para impress˜ao. Primeiro, o etodo obt´em o n´umero de linhas (l) e colunas (c) da
matriz f usando f.shape. Em seguida, ´e feita uma verifica¸ao para determinar o formato adequado
para a representa¸ao dos elementos da matriz na string de texto. Se o valor m´ınimo da matriz for
menor que zero, a vari´avel num_digitos ´e criada usando a formata¸ao %Xd, onde X ´e a quantidade de
d´ıgitos necess´arios para representar o valor aximo da matriz em texto. Caso contr´ario, a vari´avel
num_digitos ´e criada usando %Yd, onde Y ´e a quantidade de d´ıgitos necess´arios para representar o
valor aximo da matriz em texto com valores negativos. Posteriormente, o etodo itera sobre cada
elemento da matriz e formata cada valor usando a vari´avel num_digitos, concatenando-os na string
de texto. A cada linha, ´e adicionado um caractere de quebra de linha '\n' para iniciar uma nova
linha na representa¸ao final. O etodo retorna a string de texto contendo a representa¸ao da matriz.
Francisco de Assis Zampirolli MCTest 153
CAP
´
ITULO 10. EXAMES COM MCTEST+MOODLE+VPL
Quest˜ao:
1 [[def:
2 import json, numpy as np
3
4 # Passo 1: Criar os par^ametros do enunciado da quest~ao
5 Linhas, Colunas = np.random.randint(4, 8, size=2)
6
7 # Passo 2: Criar os casos de teste
8 inp_list, out_list = [], [] # Listas vazias para armazenar os casos de teste
9 casos_teste = 2 # umero de casos de teste desejado
10 # Aumentar esse umero ap´os validar a quest~ao tamb´em na atividade VPL do Moodle
11
12 def matriz2texto(M):
13 """Converte uma matriz em formato de texto."""
14 texto = ''
15 for linha in M:
16 texto += ' '.join(f"{elemento:1d}" for elemento in linha) + '\n'
17 return texto
18
19 # Para cada caso de teste:
20 for i in range(casos_teste):
21
22 #>>>> begin - casos de teste
23 # Gerar valores aleat´orios entre 0 e 9 para a matriz
24 M = np.random.randint(10, size=(Linhas, Colunas))
25
26 # Criar a entrada do caso de teste como uma string
27 inp = matriz2texto(M) +'\n'
28
29 # Calcular o valor da parcela arredondado para duas casas decimais
30 out = f'soma = {np.sum(M)}'
31 #<<<< end - casos de teste
32
33 # Adicionar a entrada e sa´ıda do caso de teste `as listas
34 inp_list.append(inp), out_list.append(out)
35
36 # Passo 3: Criar o dicion´ario com os casos de teste
37 cases = {}
38 cases['input'] = np.array(inp_list).tolist()
39 cases['output'] = np.array(out_list).tolist()
40 moodle_cases = json.dumps(cases)
41
42 # Passo 4: Mostrar um exemplo no enunciado da quest~ao
43 caso0_inp, caso0_out = cases['input'][0], cases['output'][0]
44 #print(moodle_cases) # para testar em uma IDE
45 ]]
odigo 10.2: Exemplo de quest˜ao com matriz utilizando MCTest+Moodle+VPL Parte 2: Bloco
de odigo em Python.
Francisco de Assis Zampirolli MCTest 154
10.1. CRIANDO UM EXAME COM QT INTEGRADO AO VPL
Esse etodo ´e ´util para visualizar o conte´udo da matriz f de forma leg´ıvel em uma sa´ıda de texto,
permitindo uma inspao mais clara dos valores contidos na matriz.
Quest˜ao:
1 def matriz2texto2(f):
2 l, c = f.shape
3 if np.min(f) < 0:
4 num_digitos = '%' + str(1 + len(str(np.max(f)))) + 'd '
5 else:
6 num_digitos = '%' + str(len(str(np.max(f)))) + 'd '
7 #print('"'+num_digitos+'"')
8 texto = ''
9 for i in range(l):
10 for j in range(c):
11 texto += num_digitos % f[i][j]
12 texto += '\n'
13 return texto
odigo 10.3: etodo mais gen´erico que matriz2texto para formatar uma matriz.
Essa quest˜ao apresentada nos odigos 10.1 e 10.2 ´e parametrizada apenas nas dimens˜oes da
matriz, que variam entre 4 e 7, conforme indicado na linha 5 do odigo 10.2. Para torn´a-la ainda
mais parametriz´avel, seria poss´ıvel variar o enunciado para calcular a soma, aximo, m´ınimo ou
m´edia dos elementos, considerando os ´ındices ou valores pares, ou ´ımpares. Com essas varia¸oes,
seria poss´ıvel criar um total de 16 varia¸oes, sem considerar as varia¸oes nas dimens˜oes da matriz,
que poderiam ser aumentadas para criar ainda mais varia¸oes.
Dessa forma, seria poss´ıvel criar uma ampla variedade de quest˜oes utilizando a mesma estru-
tura asica de odigo, tornando o processo de cria¸ao e corre¸ao de quest˜oes mais eficiente e flex´ıvel.
´
E importante lembrar que, ao criar quest˜oes parametrizadas, ´e fundamental garantir que todas as
varia¸oes poss´ıveis sejam coerentes e bem formuladas, al´em de estarem no mesmo n´ıvel de dificuldade
na resolu¸ao, a fim de garantir a qualidade do exame.
Figura 10.1: Recorte do PDF gerado para a quest˜ao de matriz definida nos odigos 10.1 e 10.2.
Francisco de Assis Zampirolli MCTest 155
CAP
´
ITULO 10. EXAMES COM MCTEST+MOODLE+VPL
10.1.2 Criando as varia¸oes e imprimindo o PDF do exame
Para criar um novo exame, siga os passos descritos no Cap´ıtulo 6 Vis˜ao geral dos exames.
Ap´os definir o nome do exame, escolha a turma e as quest˜oes, preencha o restante do formul´ario
conforme apresentado na Figura 10.2, realizando as devidas altera¸oes nos campos “Dificuldade 1”,
“Dissertativa” e “Respostas/Quest˜oes/Ambos”. Finalize clicando no bot˜ao “Salvar”.
Agora, para criar as varia¸oes, ´e importante selecionar a op¸ao “Json” antes de clicar no bot˜ao
“Criar-Varia¸oes”.
Figura 10.2: Recorte da tela de exame, configurando os detalhes do exame com integra¸ao VPL.
Ao fazer isso, um arquivo no formato JSON com o nome *_linker.json ser´a gerado e enviado
para o e-mail do professor. Esse arquivo deve ser renomeado para linker.json. Veja na Figura 10.3
o e-mail recebido, com remetente webmctest@ufabc.edu.br. O arquivo JSON cont´em informa¸oes
detalhadas sobre as varia¸oes do exame, incluindo as quest˜oes, as entradas utilizadas e as respostas
esperadas.
Ap´os criar as varia¸oes, ´e poss´ıvel gerar um PDF por turma contendo os exames dos es-
tudantes. No entanto, antes de fazer isso, uma boa estrat´egia seria validar a atividade VPL no
Moodle. Para isso, crie uma turma de teste incluindo somente o professor como estudante. Es-
colha essa turma no exame e, em seguida, clique no bot˜ao “Criar-PDF”. Um PDF com o exame
ser´a enviado ao professor, conforme mostrado na Figura 10.4. No mesmo e-mail, ser´a anexado o
arquivo *_students_variations.csv, que deve ser renomeado para students_variations.csv.
Este arquivo cont´em as varia¸oes de cada estudante.
Francisco de Assis Zampirolli MCTest 156
10.1. CRIANDO UM EXAME COM QT INTEGRADO AO VPL
Figura 10.3: Recorte do e-mail recebido ap´os clicar em “Criar-Varia¸oes”.
10.1.3 Criando e configurando a atividade VPL para o exame
Adaptando as instru¸oes definidas na Se¸ao 5.3 QT param´etrica, com odigo para criar uma
atividade VPL no Moodle:
1. Acesse o Moodle e a para a disciplina em que deseja adicionar um exame;
2. Clique em “Adicionar uma atividade ou recurso” e selecione “Laborat´orio Virtual de Pro-
grama¸ao” para criar uma nova atividade VPL;
3. Preencha os detalhes da atividade, como nome, descri¸ao e pontua¸ao. Em “N´umero aximo
de arquivos”, defina 2, pois o exame criado neste cap´ıtulo possui duas quest˜oes. Finalize
salvando e mostrando a atividade. Em seguida, clique no ´ıcone de engrenagem para acessar as
configura¸oes avan¸cadas da atividade e siga os pr´oximos passos;
4. Na se¸ao “Op¸oes de execu¸ao”, selecione a linguagem “Python” como “Script de execu¸ao”,
deixando apenas “Avaliar” e “Atribui¸ao autom´atica de nota” como “Sim”, por exemplo;
5. Na se¸ao “Arquivo de execu¸ao”, inclua os arquivos dispon´ıveis na ´ultima vers˜ao dispon´ıvel em
github.com/fzampirolli/mctest/tree/master/VPL
modification/V10-new selector. Os arquivos
para download ao: makefile, vpl_evaluate.sh e zip.tar.gz.b64. Inclua tamem os arqui-
vos linker.json e students_variations.csv;
Francisco de Assis Zampirolli MCTest 157
CAP
´
ITULO 10. EXAMES COM MCTEST+MOODLE+VPL
Figura 10.4: Recorte da tela do PDF do exame com integra¸ao VPL.
Francisco de Assis Zampirolli MCTest 158
10.1. CRIANDO UM EXAME COM QT INTEGRADO AO VPL
6. Para que o Moodle escolha a varia¸ao correta do exame, ´e necess´ario que o nome e sobrenome
sejam exatamente iguais no Moodle e tamb´em no arquivo students_variations.csv. Por-
tanto, ´e necess´ario alterar o nome do estudante de Estudante Exemplo Sobrenome, conforme
mostrado na Figura 10.4, para Francisco Exemplo Zampirolli;
7. Em “Arquivos a serem mantidos durante a execu¸ao”, marque todas as op¸oes e clique em
Salvar;
8. Para realizar a atividade do exame, clique na op¸ao “Atividade de teste” e em seguida em
“Editar”. Ser´a aberta uma janela solicitando o nome do arquivo, que deve ser exatamente
Q1.py. Caso utilize o nome q1.py, a atividade ao funcionar´a corretamente. Caso deseje criar
um segundo arquivo, clique no ´ıcone “+” e o ´ıcone para criar um novo arquivo, em seguida
utilize exatamente o nome do arquivo Q2.py.
10.1.4 Solu¸oes da atividade VPL para o exame
Ap´os criar os arquivos Q1.py e Q2.py, inclua solu¸oes para resolver essas quest˜oes. Por
exemplo, confira no odigo 10.4 uma solu¸ao para a primeira quest˜ao de matriz. A parte cr´ıtica
desta quest˜ao ´e o estudante ter que ler 7 linhas, contendo 6 elementos em cada linha, conforme
ilustrado na Figura 10.4.
Uma solu¸ao mais concisa e gen´erica para a quest˜ao Q1 ´e apresentada no odigo 10.5.
´
E
importante ressaltar que essa solu¸ao ´e vi´avel porque todos os casos de teste gerar˜ao entradas no
mesmo formato, como exemplificado na Figura 10.4.
Essa solu¸ao consegue ler matrizes de quaisquer dimens˜oes, caso possuam os mesmos tipos de
elementos, que neste exemplo ao inteiros, separados por espa¸cos, e cada linha da matriz seja lida
com apenas um comando input(). Essa abordagem mais compacta permite uma maior legibilidade
do odigo e pode ser ´util em casos em que a entrada segue um formato padr˜ao e bem definido.
No entanto, ´e importante ressaltar que essa solu¸ao pode ao ser adequada para cen´arios onde
a entrada varie em formato ou tamanho, e que, em tais casos, ´e mais indicado utilizar uma abordagem
mais espec´ıfica para a leitura da entrada. Al´em disso, ´e fundamental que o enunciado da quest˜ao seja
claro e objetivo, permitindo que o estudante compreenda as restri¸oes e especifica¸oes do problema.
Dessa forma, o estudante poder´a desenvolver uma solu¸ao adequada e eficiente, considerando todas
as competˆencias a serem avaliadas.
Por fim, ´e importante mencionar que a escolha da linguagem de programa¸ao pode impactar
o desenvolvimento da solu¸ao, e que, portanto, ´e recomend´avel que o enunciado seja elaborado para
permitir solu¸oes em diferentes linguagens. Assim, os estudantes ter˜ao a oportunidade de aplicar
seus conhecimentos e habilidades em diferentes contextos.
A segunda quest˜ao sobre parcelas sem juros, a ser inserida no arquivo de odigo Q2.py da
atividade VPL, pode ser resolvida com o seguinte comando: print(f"{float(input())/12:.2f}").
Este comando e a entrada fornecida, converte para o formato float, divide por 12 parcelas (como
definido no enunciado da segunda quest˜ao na Figura 10.4) e formata o resultado com duas casas
decimais.
Francisco de Assis Zampirolli MCTest 159
CAP
´
ITULO 10. EXAMES COM MCTEST+MOODLE+VPL
Quest˜ao:
1 import numpy as np
2
3 # Defini¸c~ao das vari´aveis que indicam o umero de linhas e colunas da matriz
4 linhas, colunas = 7, 6
5
6 # Inicializa¸c~ao da matriz M como uma lista vazia
7 M = []
8
9 # Loop para preenchimento da matriz M
10 for l in range(linhas):
11 # Inicializa¸c~ao da linha l da matriz M como uma lista vazia
12 linha = []
13
14 # Leitura da linha l da matriz como uma string separada por espa¸cos em branco
15 linhaChar = input().split(' ')
16
17 # Loop para preencher a linha l da matriz M com os valores lidos pelo usu´ario
18 for c in linhaChar:
19 # Verifica¸c~ao se o caractere n~ao ´e vazio
20 if c:
21 # Convers~ao e inser¸c~ao do valor na linha l da matriz M
22 valor = int(c)
23 linha.append(valor)
24
25 # Adi¸c~ao da linha l `a matriz M
26 M.append(linha)
27
28 # alculo da soma de todos os elementos da matriz M utilizando o etodo sum
29 soma = np.sum(M)
30
31 # Impress~ao do resultado da soma
32 print(f'soma = {soma}')
odigo 10.4: Exemplo de solu¸ao para a quest˜ao de matriz do exame no VPL.
10.2 Detalhando o arquivo linker.json
Esta se¸ao detalha o arquivo linker.json, sendo amplamente utilizado para trocar dados
entre sistemas e fornece uma maneira acil de armazenar e acessar informa¸oes estruturadas. Com
o arquivo linker.json, o professor pode facilmente importar as varia¸oes do exame em um sistema
de gerenciamento de exames, como o Moodle com VPL, para criar e administrar o exame.
A vers˜ao 11 mais recente do arquivo linker.json est´a sendo validada e em breve ser´a inclu´ıda
no GitHub, para poder usufruir de todos os novos recursos ao criar uma quest˜ao no MCTest com
integra¸ao VPL.
´
E destacada uma nova chave no dicion´ario chamada skills. Essa chave cont´em um
conjunto de habilidades que o estudante deve desenvolver para resolver a quest˜ao. Por exemplo, se a
quest˜ao verifica a competˆencia do estudante em criar la¸cos de repeti¸ao utilizando o comando while,
Francisco de Assis Zampirolli MCTest 160
10.2. DETALHANDO O ARQUIVO LINKER.JSON
Quest˜ao:
1 import numpy as np
2
3 def lerMatriz():
4 """ler matriz de inteiros"""
5 M, ler_linha = [], input()
6 while ler_linha:
7 M.append([int(i) for i in ler_linha.split(' ') if i])
8 ler_linha = input()
9 return M
10
11 print(f'soma = {np.sum(lerMatriz())}')
odigo 10.5: Exemplo de solu¸ao compacta e gen´erica para a quest˜ao de matriz do exame no VPL.
as adapta¸oes nos arquivos do VPL ir˜ao verificar se o estudante realmente utilizou essa habilidade.
´
E importante ressaltar que para cada disciplina devem haver conjuntos espec´ıficos de habilidades a
serem avaliadas e esses conjuntos devem crescer progressivamente.
Dessa forma, o arquivo linker.json se torna uma ferramenta valiosa para avaliar as com-
petˆencias dos estudantes de forma mais precisa e objetiva. Com as adapta¸oes nos arquivos do VPL,
´e poss´ıvel verificar se as habilidades necess´arias para resolver a quest˜ao foram efetivamente utilizadas,
garantindo uma avalia¸ao mais coerente para aprendizagem da disciplina.
Na Se¸ao 5.3.3 Quest˜ao com exerc´ıcio de programa¸ao no MCTest+Moodle+VPL, ´e apresen-
tado o dicion´ario moodle_cases de uma QT com integra¸ao VPL para popular o arquivo linker.json.
O trecho de odigo a seguir exemplifica como o arquivo linker.json ´e estruturado.
O arquivo consiste em uma varia¸ao de quest˜oes do exame, identificada pela chave variant, e
uma lista de quest˜oes. Cada quest˜ao ´e identificada pela chave key, sendo um valor ´unico do banco de
dados associado a cada quest˜ao. Al´em disso, a quest˜ao possui um n´umero de identifica¸ao, indicado
pela chave number, que representa a ordem da quest˜ao na variante do exame, um arquivo de odigo
relacionado, indicado pela chave file, que deve ser utilizado com o mesmo nome e extens˜ao em
alguma linguagem, como Q1.py para Python, e um peso, indicado pela chave weight. Este peso
´e a dificuldade da quest˜ao, definida na Se¸ao 4.1 Tutoriais gerais sobre a navega¸ao de quest˜oes
(ver Figura 4.5). Por exemplo, se um exame tem duas quest˜oes VPL, com dificuldades 1 e 2,
respectivamente, a primeira quest˜ao ter´a uma nota fracionada de 1/3, enquanto a segunda quest˜ao
valer´a 2/3, sendo que a segunda quest˜ao tem o dobro da dificuldade da primeira.
A quest˜ao tamb´em pode ter uma lista de linguagens de programa¸ao poss´ıveis para a sua
resolu¸ao, indicada pela chave language, uma lista de habilidades que o estudante deve desenvolver
para resolvˆe-la, indicada pela chave skills, e uma descri¸ao, indicada pela chave description, que
pode ser o enunciado da quest˜ao a ser apresentado na descri¸ao da quest˜ao no Moodle em formato
TXT. Por fim, a quest˜ao cont´em uma lista de casos de teste, cada um contendo uma entrada e uma
sa´ıda esperada, indicados pelas chaves input e output, respectivamente.
Vale relembrar que a defini¸ao do arquivo JSON contou com a valorosa colabora¸ao do Prof.
Francisco de Assis Zampirolli MCTest 161
CAP
´
ITULO 10. EXAMES COM MCTEST+MOODLE+VPL
Dr. Paulo Henrique Pisani e seu orientando Heitor Rodrigues Savegnago para a adapta¸ao dos
arquivos de configura¸ao do VPL.
Essa estrutura permite uma administra¸ao mais eficiente e precisa do exame, possibilitando
a cria¸ao de diferentes varia¸oes de quest˜oes com pesos e habilidades diferentes.
Conte´udo do arquivo linker.json de at´e a primeira quest˜ao:
{
"variations": [
{
"variant": "1",
"questions": [
{
"key": "2463",
"number": "1",
"file": "Q1",
"weight": "1",
"language": [
"all"
],
"skills": [],
"description": [],
"cases": [
{
"case": "test_1",
"input": [
"8 2 8 8 7 3\n0 4 9 3 9 8\n5 1 5 1 6 2\n2 1 0 7 7 1\n5 8 6 6 3 3\n4 7 9 5 9 9\n3 3 7 2 1 4\n\n"
],
"output": [
"soma = 201"
]
},
{
"case": "test_2",
"input": [
"7 6 1 8 5 6\n1 6 2 4 2 3\n9 1 1 4 2 5\n1 9 5 8 1 3\n7 1 5 0 1 8\n2 8 2 0 0 2\n6 8 2 4 0 6\n\n"
],
"output": [
"soma = 162"
]
}
]
},
...
A seguir, ´e apresentada a segunda quest˜ao da primeira varia¸ao do exame, seguindo a mesma
ordem da quest˜ao anterior. Como mencionado anteriormente, essa estrutura permite que o arquivo
linker.json seja facilmente gerenciado e adaptado para diferentes necessidades, possibilitando a
cria¸ao e administra¸ao de exames de forma mais eficiente e precisa. Dessa forma, ´e poss´ıvel criar
diferentes varia¸oes do exame, com quest˜oes e pesos diferentes, para avaliar as competˆencias dos
estudantes de forma mais abrangente.
Francisco de Assis Zampirolli MCTest 162
10.3. CONSIDERAC¸
˜
OES FINAIS
Conte´udo do arquivo linker.json da segunda quest˜ao:
...
{
"key": "2454",
"number": "2",
"file": "Q2",
"weight": "1",
"language": [
"all"
],
"skills": [],
"description": [],
"cases": [
{
"case": "test_1",
"input": [
"5009.8\n"
],
"output": [
"417.48"
]
},
{
"case": "test_2",
"input": [
"5009.7\n"
],
"output": [
"417.47"
]
}
]
}
]
},
...
10.3 Considera¸oes finais
Neste cap´ıtulo, foi apresentado como criar exames integrados ao plugin VPL do Moodle,
contendo QTs param´etricas nas quais os estudantes devem submeter EP. Esse tipo de avalia¸ao
tem sido amplamente utilizado em disciplinas de cursos de gradua¸ao e os-gradua¸ao da UFABC,
principalmente nas disciplinas introdut´orias envolvendo programa¸ao.
A integra¸ao do VPL com o Moodle permite a corre¸ao autom´atica das atividades de pro-
grama¸ao submetidas pelos estudantes. Para isso, ao necess´arios dois arquivos gerados pelo MCTest:
o linker.json, contendo as varia¸oes do exame e os detalhes de cada quest˜ao, principalmente os ca-
sos de teste; e o students_variations.csv, contendo a varia¸ao atribu´ıda a cada estudante. Esses
arquivos devem ser inseridos na configura¸ao da atividade VPL para a corre¸ao autom´atica ocor-
rer. Foram detalhados todos os passos necess´arios para criar uma atividade VPL para um exame,
incluindo a configura¸ao dos arquivos citados.
Francisco de Assis Zampirolli MCTest 163
CAP
´
ITULO 10. EXAMES COM MCTEST+MOODLE+VPL
O arquivo linker.json ´e uma ferramenta essencial para transferir dados entre sistemas,
contendo de maneira estruturada todas as informa¸oes de um exame, como varia¸oes de quest˜oes,
descri¸oes, pesos, habilidades, casos de teste, entre outros. A vers˜ao mais atual desse arquivo est´a
sendo validada e em breve ser´a disponibilizada, contendo novas chaves como skills, que especifica as
habilidades que o estudante deve desenvolver para resolver cada quest˜ao. Isso permite uma avalia¸ao
mais precisa das competˆencias dos estudantes.
Apesar dos benef´ıcios da avalia¸ao por meio de atividades pr´aticas na aprendizagem ativa,
muitos docentes ainda ao utilizam essa metodologia. A ado¸ao de exames padronizados, como os
apresentados neste trabalho, pode auxiliar na uniformiza¸ao dos conte´udos e habilidades desenvolvi-
das pelos estudantes, fortalecendo o processo de ensino-aprendizagem.
Conclui-se esta parte sobre a cria¸ao e corre¸ao de exames de diferentes estilos, incluindo
quadros de respostas (QRs), al´em de QMs e QTs. Estas ´ultimas podem conter EP que ao pass´ıveis
de corre¸ao autom´atica utilizando o plugin VPL do Moodle. Espera-se que, at´e este ponto do livro,
o potencial do MCTest para criar e corrigir exames tenha sido evidenciado ao professor. Para com-
provar seus benef´ıcios, nos pr´oximos cap´ıtulos ser˜ao apresentados resumos dos principais resultados
publicados at´e o momento.
Francisco de Assis Zampirolli MCTest 164
Parte IV
Experimentos
Conte´udo
11 MCTest vers˜oes 1, 2 e 3 - Quadro de Respostas (QR) 167
12 MCTest vers˜oes 4, 4.G e 5 175
13 MCTest+Moodle+VPL 203
14 Conclus˜oes 213
Bibliografia 217
165
Francisco de Assis Zampirolli MCTest 166
Cap´ıtulo 11
MCTest vers˜oes 1, 2 e 3 - Quadro de Res-
postas (QR)
Conte´udo
11.1 MCTest-1: vers˜ao no Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.2 MCTest-2: vers˜ao no Android . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
11.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
O objetivo desta parte do livro ´e relatar os experimentos realizados no MCTest desde a sua
primeira vers˜ao (MCTest-1), os quais foram publicados como artigos cient´ıficos. Como cada nova
vers˜ao do MCTest incorpora as funcionalidades das vers˜oes anteriores, em geral, ´e poss´ıvel reproduzir
os experimentos realizados nos processos de gera¸ao e corre¸ao de exames nesta vers˜ao web mais
recente do MCTest (MCTest-5). Nos pr´oximos cap´ıtulos, ser˜ao introduzidos alguns dos experimentos
apresentados nos artigos, caso ainda ao tenham sido abordados anteriormente. Esses exemplos ser˜ao
salvos no banco de dados SQL relacionado, que estar´a dispon´ıvel em github.com/fzampirolli/mctest,
arquivo book/1ed-br/mctestLivro.sql, juntamente com o conte´udo deste livro, com o intuito de
enriquecer o texto e torn´a-lo mais interessante.
Antes de iniciar este relato de experiˆencias, ´e importante mencionar que todas as publica¸oes
realizadas ao teriam sido poss´ıveis sem a participa¸ao fundamental dos colaboradores. Al´em
disso, gostaria de destacar o apoio e contribui¸ao dos professores da Universidade Federal do ABC
(UFABC): Guiou Kobayashi, Jos´e Artur Quilici-Gonzalez e Rog´erio Perino de Oliveira Neves. Eles
participaram do processo seletivo da Especializa¸ao em Tecnologias e Sistemas da Informa¸ao (TSI)
da UFABC e colaboraram nas primeiras vers˜oes do MCTest desde 2012. Agrade¸co sua valiosa par-
ticipa¸ao e contribui¸ao no desenvolvimento deste projeto.
O artigo de Kobayashi, Zampirolli e Quilici-Gonzalez (2016) detalha as trˆes primeiras edi¸oes
do TSI na modalidade de Ensino a Distˆancia (EaD), oferecido pela UFABC, as quais foram lan¸cadas
nos anos de 2010, 2012 e 2014. O objetivo do curso ´e suprir a necessidade por profissionais qualificados
167
CAP
´
ITULO 11. MCTEST VERS
˜
OES 1, 2 E 3 - QUADRO DE RESPOSTAS (QR)
em Tecnologia da Informa¸ao no estado de ao Paulo, abrangendo localidades distantes at´e 200 km.
O curso foi ministrado por meio de uma plataforma web. Os experimentos realizados focaram
em superar desafios relacionados ao EaD, como a escalabilidade de professores, o isolamento e a
autentica¸ao dos estudantes. O projeto foi financiado pelo programa UAB (Universidade Aberta
do Brasil), vinculado a CAPES (Coordena¸ao de Aperfei¸coamento de Pessoal de N´ıvel Superior)
do governo brasileiro, permitindo que o curso fosse oferecido gratuitamente. A avalia¸ao positiva
dos cursos demonstra que uma universidade p´ublica pode complementar a forma¸ao profissional de
centenas de estudantes por meio de cursos de EaD de alta qualidade. Os resultados dos experimentos
forneceram referˆencias importantes que podem ser utilizadas em projetos futuros de EaD.
Neste primeiro cap´ıtulo de experimentos, ser´a apresentado um resumo dos artigos que des-
crevem as experiˆencias de cria¸ao de exames com QM est´aticas, utilizando editores de texto como o
Word ou BROffice.
11.1 MCTest-1: vers˜ao no Matlab
A primeira vers˜ao do MCTest (MCTest-1) foi utilizada no processo seletivo do TSI entre os
anos de 2012 e 2017. Durante esse per´ıodo, o exame era realizado no Word ou no BROffice, e a
automatiza¸ao era aplicada apenas na corre¸ao do exame. Para esta vers˜ao, foi publicado o seguinte
artigo.
Artigo descrevendo a parte de vis˜ao computacional do MCTest-1
O artigo de Zampirolli, Quilici-Gonzalez e Neves (2013) descreve o processo de transforma¸ao
de imagens capturadas dos QRs dos exames, como ilustrado na Figura 11.1, em matrizes bin´arias
reduzidas contendo as respostas `as quest˜oes, juntamente com alguns elementos de controle na ´ultima
coluna para as varia¸oes do exame e na ´ultima linha para atribuir pesos diferentes `as quest˜oes.
Figura 11.1: Recorte do PDF com o QR utilizado no MCTest-1.
M´etodo
Como o artigo foi apresentado no Workshop de Vis˜ao Computacional, o m´etodo destaca o
Processamento Digital de Imagens para converter uma imagem capturada pela amera do computador
em uma matriz reduzida contendo as respostas marcadas e alguns elementos de controle adicionais.
Francisco de Assis Zampirolli MCTest 168
11.1. MCTEST-1: VERS
˜
AO NO MATLAB
O etodo foi aplicado ao problema real da corre¸ao autom´atica de exames com QMs. Inicial-
mente, o usu´ario posiciona o QR em frente `a amera do computador para salvar a imagem no disco.
Em seguida, a imagem ´e analisada para extrair o gabarito das varia¸oes do exame. Posteriormente,
os QRs dos estudantes podem ser lidos usando o mesmo processo, e a pontua¸ao do exame ´e exibida
na tela e/ou salva em um arquivo.
Experimentos
Neste artigo, foi utilizada uma base de dados composta por 674 exames preenchidos por
candidatos ao TSI, na oferta de 2012. Cada exame foi impresso em uma folha de papel A4 e continha
24 QMs, com cinco alternativas cada, sendo apenas uma a resposta correta. Foram preparados
oito conjuntos diferentes de exames, identificados pela ´ultima coluna da Figura 11.1, cada um com
varia¸oes nas quest˜oes e respostas, como detalhado na Figura 11.3.
O processamento dos exames foi conduzido em um MacBook Pro equipado com um proces-
sador Intel Core 2 Duo de 2,26 GHz, 2 GB de RAM e uma placa de v´ıdeo Nvidia GeForce 9400M,
que disp˜oe de 256 MB de mem´oria compartilhada. Essa aquisi¸ao foi realizada por meio do projeto
FAPESP #2009/14430–1. As capturas dos QRs preenchidos e das varia¸oes foram realizadas utili-
zando a amera embutida de 2 megapixels. O processamento das imagens foi realizado por meio do
MATLAB vers˜ao 2011. O processamento das imagens dos exames seguiu os seguintes passos:
1. Leitura das varia¸oes para cada conjunto de exames;
2. Salvamento de uma imagem no formato TIFF contendo apenas a ´area do QR da varia¸ao,
conforme ilustrado na Figura 11.1;
3. Salvamento de uma matriz bidimensional contendo as respostas corretas para cada tipo de
exame;
4. Leitura dos QRs dos exames dos estudantes;
5. Salvamento da imagem de cada exame em um arquivo TIFF separado;
6. Adi¸ao dos resultados processados dos exames a um arquivo CSV.
Os resultados dos experimentos demonstraram que o etodo proposto consegue corrigir auto-
maticamente exames com QMs com alta precis˜ao. A m´edia de erros foi de apenas 0,2%, representando
uma precis˜ao significativamente maior em compara¸ao aos etodos tradicionais de corre¸ao, como a
corre¸ao manual e a corre¸ao por meio de softwares comerciais testados na ´epoca.
Apesar das instru¸oes do exame, que deixavam claro que os quadrados deveriam ser preenchi-
dos completamente com tinta para garantir uma identifica¸ao correta, foram identificadas respostas
inalidas em 6,7% dos 674 exames (42 exames). Essas respostas foram prontamente identificadas
visualmente pelo operador e a pontua¸ao foi ajustada conforme necess´ario.
Francisco de Assis Zampirolli MCTest 169
CAP
´
ITULO 11. MCTEST VERS
˜
OES 1, 2 E 3 - QUADRO DE RESPOSTAS (QR)
11.2 MCTest-2: vers˜ao no Android
Artigo descrevendo o MCTest-2 para dispositivos oveis
O MCTest, Vers˜ao 2 (MCTest-2), ´e um aplicativo desenvolvido para dispositivos oveis, es-
pecificamente para Android, que realiza a corre¸ao autom´atica de exames com QMs. Essa vers˜ao foi
detalhado do artigo de China et al. (2016) e ´e uma adapta¸ao da primeira vers˜ao desenvolvida para
computador pessoal (PC) utilizando o MATLAB. Nesta vers˜ao MCTest-2, as t´ecnicas de processa-
mento digital de imagens foram otimizadas para uso em dispositivos oveis, e a biblioteca OpenCV
foi empregada em substitui¸ao `a Toolbox de Processamento de Imagem do MATLAB.
O estudante de Inicia¸ao Cient´ıfica Rodrigo China foi respons´avel pelo desenvolvimento do
MCTest-2, e os detalhes sobre a parte de Processamento Digital de Imagens foram publicados no
Workshop de Vis˜ao Computacional (ZAMPIROLLI et al., 2015). Al´em disso, o trabalho tamb´em foi
apresentado como oster em um evento de Inicia¸ao Cient´ıfica (CHINA; ZAMPIROLLI, 2014).
M´etodo
O artigo de China et al. (2016) descreve o MCTest-2 desenvolvido em Java e pode ser utilizado
em dispositivos com amera embutida e sistema operacional Android, Vers˜ao 4.0 ou superior. No
entanto, a resolu¸ao da amera pode limitar o n´umero aximo de quest˜oes e respostas no papel do
exame.
O processo de utiliza¸ao do aplicativo consiste em trˆes etapas. Na primeira etapa, ´e poss´ıvel
criar um novo projeto ou carregar um projeto previamente salvo. O projeto ´e armazenado em uma
subpasta com o nome correspondente. Na segunda etapa, os gabaritos com as respostas corretas ao
salvos. Esses gabaritos podem ser criados utilizando qualquer software de edi¸ao de texto. Por fim,
na terceira etapa, ´e feita a compara¸ao entre os exames dos estudantes e os gabaritos correspondentes.
A Figura 11.2 demonstra o aplicativo utilizado em um gabarito impresso.
A Figura 11.3 exibe o QR. Esse QR representa um exame com QMs com 10 quest˜oes e
5 poss´ıveis respostas para cada quest˜ao. Uma linha e uma coluna adicionais ao inclu´ıdas para
armazenar informa¸oes sobre a varia¸ao de exame e a avalia¸ao ponderada. Para identificar a varia¸ao
do exame, ´e utilizada a coluna da direita, com os bits 0-3 indicando o n´umero da varia¸ao em
formato bin´ario. Isso permite a cria¸ao de gabaritos de exame diferentes, com quest˜oes e respostas
embaralhadas manualmente para evitar trapa¸cas. O n´umero de varia¸oes de exames poss´ıveis ´e
determinado pelo n´umero de alternativas de resposta, e a avalia¸ao ponderada ´e permitida na ´ultima
linha da tabela.
O QR processado e apresentado no formato CSV a seguir, gerado pelo aplicativo, cont´em
informa¸oes sobre as respostas de dois exames. A primeira linha mostra o n´umero de quest˜oes,
respostas e quantos QRs foram processados. Em seguida, os cabcalhos das colunas, que incluem
n´umero, ID, tipo/varia¸ao, quantidade de respostas inalidas, quantidade de respostas erradas, quan-
tidade de respostas corretas e pontua¸ao final. A partir da segunda linha, cada linha corresponde a
um participante do exame. As colunas seguintes representam as respostas para cada uma das dez
Francisco de Assis Zampirolli MCTest 170
11.2. MCTEST-2: VERS
˜
AO NO ANDROID
Figura 11.2: Demonstra¸ao da captura a partir de um gabarito impresso.
Figura 11.3: As quest˜oes marcadas na parte inferior indicam um valor ponderado atribu´ıdo a quest˜ao,
as maras `a direita representam diferentes gabaritos e a identifica¸ao do gabarito ´e a marca `a direita
e abaixo. Fonte: China et al. (2016).
quest˜oes do exame.
Al´em disso, o aplicativo tamem oferece a op¸ao de visualizar estat´ısticas por turma, conforme
ilustrado na Figura 11.4. Esse aplicativo possui arias telas apresentadas e detalhadas no trabalho
de China et al. (2016).
Francisco de Assis Zampirolli MCTest 171
CAP
´
ITULO 11. MCTEST VERS
˜
OES 1, 2 E 3 - QUADRO DE RESPOSTAS (QR)
Conte´udo do arquivo CSV com estat´ısticas e as marca¸oes realizadas.
10 5 2 1
Numero ID Tipo Invalidas Erradas Corretas Final Ques: 1 2 3 4 5 6 7 8 9 10
1 0 0 1 2 8 8.0 Ans: C D A B C C D E O C
2 0 0 0 2 8 8.0 Ans: C D A B C C D E A C
Figura 11.4: Estat´ısticas sobre o n´umero de respostas corretas em uma turma. Fonte: China et al.
(2016).
Experimentos
O aplicativo foi testado em dois cen´arios reais, envolvendo 41 e 64 estudantes, respectivamente.
Em ambos os casos, o MCTest apresentou uma precis˜ao de 100% quando os estudantes preencheram
corretamente os QRs. O aplicativo considera os blocos preenchidos se eles contiverem pelo menos
50% da ´area pintada.
´
E importante incluir instru¸oes claras no exame, explicando como preencher
completamente o QR usando caneta preta ou apis, a fim de evitar pontua¸oes mais baixas.
O tempo de processamento para cada exame varia conforme o dispositivo utilizado. Contudo,
mesmo em dispositivos mais acess´ıveis, o tempo de processamento ´e mais apido do que o observado
na vers˜ao anterior no computador pessoal (PC), no caso do MCTest-1.
11.3 Considera¸oes finais
Nas diferentes vers˜oes do MCTest, existem duas abordagens para realizar os experimentos
descritos. A primeira abordagem envolve fornecer as quest˜oes separadamente, como demonstrado
Francisco de Assis Zampirolli MCTest 172
11.3. CONSIDERAC¸
˜
OES FINAIS
no Cap´ıtulo 7 - Exames com Quadro de Respostas (QR), como utilizado na Escola Preparat´oria da
UFABC. A segunda abordagem mais recente ´e incluir as quest˜oes no banco de quest˜oes do MCTest,
conforme descrito no Cap´ıtulo 8 - Exames com QR+QM e/ou QT. Al´em disso, nas vers˜oes mais
recentes, ao ´e mais necess´ario posicionar o QR diante da amera do computador ou celular, como
nas vers˜oes 1 e 2. Agora, ´e poss´ıvel digitalizar todos os exames em um arquivo PDF, tornando o
processo menos repetitivo e permitindo a corre¸ao de exames com centenas de estudantes.
A Vers˜ao 3 do MCTest (MCTest-3) foi desenvolvida em Python, utilizando o mesmo QR das
vers˜oes anteriores. Nessa vers˜ao, as quest˜oes eram fornecidas separadamente e a biblioteca OpenCV
era utilizada para o processamento digital de imagens. Os exames eram digitalizados em um arquivo
PDF para a corre¸ao autom´atica.
Por fim, todas as vers˜oes apresentadas neste cap´ıtulo foram registradas no INPI, conforme
mencionado na Se¸ao 1.2.2 - Vers˜oes do MCTest.
A Vers˜ao 4 do MCTest tamb´em foi desenvolvida em Python, mas agora utiliza QRs criados
no L
A
T
E
X. Al´em disso, as quest˜oes ao geradas utilizando uma vers˜ao diferente, a 4.G (de generate),
tamb´em com o L
A
T
E
X. Os experimentos realizados com essas vers˜oes ser˜ao apresentados no pr´oximo
cap´ıtulo.
Francisco de Assis Zampirolli MCTest 173
CAP
´
ITULO 11. MCTEST VERS
˜
OES 1, 2 E 3 - QUADRO DE RESPOSTAS (QR)
Francisco de Assis Zampirolli MCTest 174
Cap´ıtulo 12
MCTest vers˜oes 4, 4.G e 5
Conte´udo
12.1 MCTest-4: gerando e corrigindo quest˜oes criadas no L
A
T
E
X . . . . . . . . . . . 176
12.1.1 Artigo descrevendo as vers˜oes do MCTest 4 e 4.G . . . . . . . . . . . . 176
12.1.2 Artigo comparando as modalidades semipresencial e presencial CS1 com
base na utilidade do MCTest-4 . . . . . . . . . . . . . . . . . . . . . . 178
12.1.3 Artigo definindo a parametriza¸ao do MCTest ap´os a vers˜ao 4 . . . . . 180
12.2 MCTest-5: a vers˜ao web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
12.2.1 Artigo apresentando a primeira vers˜ao web do MCTest . . . . . . . . . 184
12.2.2 Artigo descrevendo o MCTest em conjunto com Google Forms e Google
Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
12.2.3 Artigo descrevendo a ado¸ao de QMs com pesos diferentes nas alterna-
tivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
12.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Neste cap´ıtulo, ao apresentadas as vers˜oes adicionais do MCTest, nomeadamente o MCTest-4,
MCTest-4.G e MCTest-5.
O MCTest-4 ´e um software desenvolvido para a corre¸ao de exames com QMs. Ele e um
arquivo PDF contendo os QRs dos estudantes, identifica automaticamente cada estudante utilizando
odigo de barras e corrige exames individuais com quest˜oes e alternativas aleat´orias. O programa
realiza a corre¸ao dos exames comparando as respostas marcadas com o gabarito e gera um arquivo
CSV contendo a corre¸ao de cada quest˜ao, bem como o umero total de quest˜oes corretas e inalidas.
O MCTest-4.G (de generate) ´e um software desenvolvido para a gera¸ao de exames com
quest˜oes. Ele lˆe uma estrutura de pastas e arquivos contendo dados de estudantes e matr´ıcula, al´em
de um banco de QMs ou QTs. O MCTest-4.G utiliza esses dados para gerar exames distintos e
aleat´orios para cada estudante. Nas folhas de exame, al´em do nome e matr´ıcula do estudante, a
um odigo de barras referente `a sua matr´ıcula.
175
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Al´em disso, neste cap´ıtulo, ao apresentados os experimentos conduzidos na vers˜ao mais re-
cente, o MCTest-5, que agora ´e baseado na web e usa o banco de dados MySQL. No entanto, a
integra¸ao com as atividades VPL do Moodle ser´a tratada em um cap´ıtulo distinto, devido `a sua
complexidade e `a extensa literatura existente sobre o assunto.
12.1 MCTest-4: gerando e corrigindo quest˜oes criadas no
L
A
T
E
X
Tanto o gerador de exames (MCTest-4.G) quanto o corretor (MCTest-4) operam de maneira
independente. No entanto, para assegurar a precis˜ao na corre¸ao dos exames, ´e importante utilizar os
exames gerados pelo MCTest-4.G. Em caso contr´ario, a ´unica alternativa vi´avel ser´a considerar uma
´unica varia¸ao do exame para todos os estudantes, e a identifica¸ao individual de cada estudante
se basear´a na sequˆencia em que eles aparecem no documento PDF. Dessa forma, a corre¸ao ter´a
de ser realizada manualmente, como exemplo, por meio do uso de uma planilha eletrˆonica, onde as
respostas dos estudantes no CSV gerado ser˜ao comparadas com um gabarito, assemelhando-se ao
procedimento nas vers˜oes anteriores do MCTest.
A partir desta se¸ao, ser´a considera apenas a vers˜ao MCTest-4, incorporando as funcionali-
dades das duas vers˜oes.
12.1.1 Artigo descrevendo as vers˜oes do MCTest 4 e 4.G
A vers˜ao 4 do MCTest (MCTest-4) representou um avan¸co significativo em rela¸ao `as vers˜oes
anteriores, ao introduzir melhorias na corre¸ao dos exames. No artigo de Zampirolli, Batista e Quilici-
Gonzalez (2016), ´e apresentada uma solu¸ao inovadora para simplificar a gera¸ao e corre¸ao de QMs
onde a confiabilidade dos resultados ´e fundamental.
M´etodo
No MCTest-4, o programa gera um arquivo L
A
T
E
X e seu respectivo arquivo PDF compilado,
contendo o exame individual de cada estudante. O exame consiste em uma agina inicial seguida
por uma lista de QMs e, opcionalmente, QTs. A agina inicial ´e projetada para a marca¸ao das
respostas das QMs e inclui um cabcalho.
´
E poss´ıvel gerar exames individuais com respostas ´unicas
para cada estudante. Todas essas op¸oes ao configur´aveis em um arquivo de configura¸ao separado.
A pasta MCTest4-master, mostrada na Figura 12.1, cont´em cinco subpastas, incluindo a
pasta courses, destinada a armazenar diferentes turmas de uma mesma disciplina ou de disciplinas
diferentes. Por exemplo, se vocˆe estiver lecionando Programa¸ao Orientada a Objetos (POO) e
Engenharia de Software (ES) em um semestre de 2016, poder´a criar as pastas course1 e course2
dentro de courses para as turmas de POO e ES, respectivamente. Cada pasta conter´a listas de
estudantes e seus respectivos IDs em arquivos CSV, como 16_POO_class1.csv e 16_ES_class2.csv,
seguindo a formata¸ao definida na Se¸ao 3.3.1 Criar turma com arquivo CSV. As quest˜oes ao
armazenadas na pasta questions em arquivos TXT, seguindo a mesma estrutura apresentada na
Francisco de Assis Zampirolli MCTest 176
12.1. MCTEST-4: GERANDO E CORRIGINDO QUEST
˜
OES CRIADAS NO L
A
T
E
X
Figura 12.1: Estrutura de pastas do MCTest-4. Fonte: Zampirolli, Batista e Quilici-Gonzalez (2016).
Se¸ao 4.1 Tutoriais gerais sobre a navega¸ao de quest˜oes. A gera¸ao de um exame para uma turma
espec´ıfica requer a configura¸ao no arquivo config.txt. Para mais detalhes sobre essa estrutura de
pastas e arquivos, consulte o artigo de Zampirolli, Batista e Quilici-Gonzalez (2016).
Os estudantes preenchem os QRs na agina inicial do exame, que a cont´em seus nomes e
n´umeros de identifica¸ao em um odigo de barras, no caso de exames individuais. Ap´os a conclus˜ao
do exame, todas as aginas com os QRs podem ser digitalizadas em um ´unico arquivo PDF, que o
software utiliza para realizar a corre¸ao autom´atica. As notas finais ao armazenadas em um arquivo
CSV que cont´em o ID de cada estudante, seguindo o mesmo estilo apresentado na Se¸ao 7.3.1 -
Arquivo CSV com as corre¸oes.
O programa createTexTests.py, apresentado na Figura 12.1, ´e respons´avel por gerar um
arquivo GAB contendo os gabaritos das respostas individuais de cada estudante, caso sejam utilizados
exames aleat´orios. O corretor, por sua vez, e um arquivo PDF contendo as aginas digitalizadas dos
exames e utiliza o arquivo GAB para calcular as notas. As respostas dos estudantes ao identificadas
atrav´es da an´alise das marca¸oes nas quest˜oes. Caso ocorram erros de leitura do odigo de barras
ou das marca¸oes, o corretor sinaliza esses problemas nas notas. O arquivo de notas ´e gerado em
formato CSV.
O MCTest-4 foi elaborado utilizando a linguagem de programa¸ao Python e se encontra
dispon´ıvel gratuitamente em github.com/fzampirolli/MCTest4. Professores podem fazer o download
do odigo em Python, acompanhado da estrutura de pastas e exemplares de arquivos, para gerar os
exames.
Para utilizar o programa, ´e necess´ario que o professor instale o Python e as bibliotecas ne-
cess´arias, como a OpenCV. Uma alternativa ´e enviar os arquivos GAB e PDF digitalizados para o
Francisco de Assis Zampirolli MCTest 177
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
servidor do MCTest-4 por meio do FTP. Neste servidor, a um script que detecta automaticamente
esses arquivos e os processa. O arquivo de notas resultante pode ser enviado por e-mail ou baixado do
servidor. Todo esse processo ´e detalhado no artigo de Zampirolli, Batista e Quilici-Gonzalez (2016).
Experimentos
Segundo os autores do artigo, ao descritos trˆes experimentos realizados com o MCTest-4. O
primeiro experimento foi realizado com uma turma de 66 estudantes da disciplina de Programa¸ao
Orientada a Objetos. Os exames foram gerados com 10 QMs e uma QT. Os resultados foram
satisfat´orios, com apenas um erro de leitura. O segundo experimento foi realizado com uma turma
de 130 estudantes da disciplina de Processamento de Informa¸ao. Os exames foram gerados com
12 QMs e uma QT. Os resultados tamb´em foram satisfat´orios, sem nenhum erro de leitura. O
terceiro experimento foi realizado com 6772 estudantes de escolas p´ublicas do Brasil. Os exames
foram gerados com 11 QMs para os estudantes do ensino m´edio e 13 quest˜oes para os estudantes do
ensino fundamental. Os resultados foram satisfat´orios, com uma taxa de erros de leitura de 1,88%.
No terceiro experimento, foi utilizado um servidor adquirido com recursos da FAPESP, pro-
cesso 2009/14430–1, com um microprocessador, Intel (R) Core (TM) i7, CPU X980@3.33GHz com
12GB de RAM, sistema operacional Linux Ubuntu 64 bits vers˜ao 15.04 e execut´aveis gerados por
Python 2.7.9. Um script do MCTest-4 ´e executado a cada minuto e procura por arquivos com
extens˜ao PDF (sem arquivos GAB), para os quais os arquivos CSV correspondentes ainda ao fo-
ram criados. O corretor autom´atico levou 102 minutos para processar os 6772 exames, ou seja, 0,9
segundos por exame.
Os resultados dos experimentos indicam que o MCTest-4 ´e uma ferramenta eficaz para a
avalia¸ao de estudantes. O programa consegue gerar exames com quest˜oes de qualidade e de corrigi-
los de forma apida e precisa. Al´em disso, o programa ´e acil de usar e pode ser personalizado para
atender `as necessidades espec´ıficas de cada professor.
12.1.2 Artigo comparando as modalidades semipresencial e presencial
CS1 com base na utilidade do MCTest-4
O artigo de Zampirolli et al. (2018), publicado na revista Computer Applications in Enginee-
ring Education, descreve um processo de avalia¸ao desenvolvido para a disciplina de Processamento
da Informa¸ao (ou Introdu¸ao `a Programa¸ao, IP, ou tamb´em CS1) oferecido pela Universidade Fe-
deral do ABC. O estudo compara a modalidade presencial (IP-FF face-to-face) e a modalidade
semipresencial blended learning (IP-BL), onde apenas as avalia¸oes ao realizadas presencialmente.
M´etodo
O processo de avalia¸ao foi desenvolvido a partir da identifica¸ao de problemas no processo
de avalia¸ao de IP-FF. Os problemas identificados foram: Avalia¸ao de crit´erios diferentes entre
professores; falta de uniformidade na formata¸ao dos exames; dificuldade de calcular a nota final do
estudante.
Francisco de Assis Zampirolli MCTest 178
12.1. MCTEST-4: GERANDO E CORRIGINDO QUEST
˜
OES CRIADAS NO L
A
T
E
X
Para resolver esses problemas, o processo de avalia¸ao proposto utiliza: um banco de quest˜oes
com diferentes n´ıveis de dificuldade; um sistema para gerar exames ´unicos para cada estudante; um
sistema para corrigir os exames de forma semi-autom´atica.
Experimentos
Os experimentos foram conduzidos em 10 turmas da disciplina IP-BL e demonstraram que
o processo de avalia¸ao conseguiu padronizar os crit´erios de avalia¸ao, aprimorar a formata¸ao dos
exames e simplificar o alculo da nota final. Os exames foram elaborados utilizando adapta¸oes no
software MCTest-4.G, contendo trˆes QTs em cada exame. Para aumentar a diversidade, as quest˜oes
foram replicadas manualmente com modifica¸oes em alguns parˆametros.
Foram criados scripts em Python para auxiliar nas avalia¸oes da disciplina. Essas ferramen-
tas automatizadas incluem a gera¸ao autom´atica de exames individuais, a organiza¸ao dos exames
digitalizados por quest˜ao e estudante, a compila¸ao do odigo submetido pelos estudantes e o envio
autom´atico de e-mails com as notas e os erros apontados pelos professores. Todos esses scripts foram
adaptados e incorporados na vers˜ao web mais recente, MCTest-5.
A primeira avalia¸ao da disciplina foi realizada em formato impresso, onde os estudantes
tinham que resolver trˆes EPs. Uma das quest˜oes envolvia o uso de teste de mesa, conforme ilustrado
na Figura 4.12. Um exemplo de exame utilizado para essa primeira avalia¸ao, onde cada quest˜ao
ocupava uma folha frente e verso, ´e mostrado na Figura 12.2. As resolu¸oes dos estudantes eram
digitalizadas e enviadas aos professores, sendo que cada professor corrigia uma ´unica quest˜ao de
todos os estudantes da disciplina na modalidade IP-BL.
Na segunda avalia¸ao, os estudantes tamb´em tinham que resolver trˆes EPs, mas desta vez elas
foram enviadas por meio da plataforma AVA (Ambiente Virtual de Aprendizagem) tidia4.ufabc.edu.br.
Todos os odigos submetidos pelos estudantes foram salvos em um computador e executados automa-
ticamente para verificar poss´ıveis erros. Os professores deveriam atribuir um conceito a cada arquivo
de odigo.
Essas corre¸oes unificadas ocorreram nos anos de 2016.3, 2017.1 e 2017.2, com um total de
235, 185 e 161 estudantes, respectivamente. A UFABC utiliza trˆes per´ıodos letivos por ano.
Esses aquivos de odigos dos estudantes foram tamem utilizados como dataset para o artigo de
Souza, Zampirolli e Kobayashi (2019), onde apresenta um m´etodo para validar as notas atribu´ıdas por
professores aos EPs de estudantes em IP-BL. Foi utilizado um modelo de rede neural convolucional
treinado com odigos fonte de estudantes avaliados por diferentes professores. Os odigos foram
pr´e-processados e convertidos em representa¸oes embedding, utilizadas como entrada para a rede
neural. O modelo obteve uma precis˜ao m´edia de 74,9% na classifica¸ao das notas dos exerc´ıcios.
Essa abordagem pode ajudar a detectar poss´ıveis erros no processo de avalia¸ao realizado pelos
professores.
Os resultados mostraram a redu¸ao da dispers˜ao nas notas ap´os a implementa¸ao do processo
de avalia¸ao unificado. No entanto, ainda ´e preciso enfrentar desafios como a resistˆencia dos profes-
sores em adotar crit´erios unificados e a incorpora¸ao de ferramentas de corre¸ao autom´atica no AVA.
O artigo ressalta a importˆancia de atividades de motivao e acompanhamento dos estudantes para
Francisco de Assis Zampirolli MCTest 179
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Figura 12.2: Recorte de um exame gerado com MCTest-4.G.
melhorar os ´ındices de aprovao na disciplina.
12.1.3 Artigo definindo a parametriza¸ao do MCTest ap´os a vers˜ao 4
Todo o conte´udo apresentado no Cap´ıtulo 5 Quest˜oes param´etricas, exceto a se¸ao refe-
rente ao VPL, foi originalmente publicado no artigo de Zampirolli, Teubl e Batista (2019a). Em
resumo, para criar quest˜oes param´etricas no MCTest-4, ao necess´arios dois delimitadores especiais:
[[code:...]] e [[def:...]]. O primeiro deve ser colocado no enunciado da quest˜ao ou nas al-
ternativas e define instru¸oes em Python ou vari´aveis a serem usadas na gera¸ao do exame de cada
estudante. a o segundo deve ser definido no final do enunciado e deve conter os poss´ıveis valores
para as vari´aveis aplicadas anteriormente.
Esse artigo apresenta duas quest˜oes param´etricas utilizando arquivos TXT, conforme apresen-
tado na Se¸ao 4.1 - Tutoriais gerais sobre a navega¸ao de quest˜oes, reproduzidas a seguir. Lembrando
que a contribui¸ao desse artigo criou quest˜oes param´etricas e na ´epoca da escrita do artigo, a vers˜ao
web ainda ao estava dispon´ıvel. A seguir, ao apresentadas essas quest˜oes, por´em, na vers˜ao web
do MCTest.
Movimento Retil´ıneo Uniforme com a biblioteca symbols
O odigo 12.1 implementa um algoritmo para calcular a vari´avel tempo (t) em um problema
de Movimento Retil´ıneo Uniforme (MRU), dado a posi¸ao inicial (s0), a velocidade (v) e a posi¸ao
final (s) do corpo. O etodo algorithm(a) recebe como entrada uma lista contendo trˆes valores
inteiros: a posi¸ao inicial (s0), a velocidade (v) e a posi¸ao final (s), nessa ordem. Na primeira linha
do etodo, ao importados os odulos symbols e solve da biblioteca SymPy (docs.sympy.org), que
permite criar s´ımbolos matem´aticos para serem usados em alculos simolicos e tamb´em resolver
Francisco de Assis Zampirolli MCTest 180
12.1. MCTEST-4: GERANDO E CORRIGINDO QUEST
˜
OES CRIADAS NO L
A
T
E
X
uma equa¸ao, respectivamente. ao definidos os s´ımbolos s e t utilizando o etodo symbols, e a
posi¸ao s ´e calculada como a soma da posi¸ao inicial s0 com a velocidade v multiplicada pelo tempo
t. Por fim, o m´etodo solve ´e utilizado para resolver a equa¸ao s-a2=0 em rela¸ao `a vari´avel t. O
resultado ´e armazenado na vari´avel r como um n´umero decimal (do tipo float) e retornado pelo
m´etodo algorithm(a) como o tempo necess´ario para o objeto percorrer a distˆancia entre as posi¸oes
s0 e s com velocidade v em MRU. Um exemplo de sa´ıda desta quest˜ao pode ser visualizado na Figura
12.3.
Quest˜ao:
1 Um autom´ovel percorre uma estrada com fun¸c~ao hor´aria \( s=[[code:a0]] +
2 [[code:a1]]t \), onde \(s\) ´e dado em quil^ometros e \(t\) em horas.
3 O autom´ovel passa pelo km [[code:a2]] ap´os:
4
5 [[def:
6 def generate_numbers():
7 """ Gera tr^es umeros aleat´orios e retorna-os como uma lista. """
8 import random
9 global a0, a1, a2 # necess´ario declarar como global para utilizar no enunciado
10 a0 = random.randrange(-6, 12, 1) # s0 - posi¸c~ao inicial
11 a1 = random.randrange(3, 8, 1) # v - velocidade
12 a2 = random.randrange(3, 8, 1) # s - posi¸c~ao final
13 return [a0, a1, a2]
14
15 def algorithm(a):
16 """ Executa um algoritmo matem´atico utilizando os valores passados como
17 par^ametro. Retorna o resultado do algoritmo. """
18 from sympy import symbols, solve
19 a0, a1, a2 = a # s0, v, s
20 s, t = symbols('s,t')
21 s = a0 + a1 * t
22
23 r = float(solve(s - a2, t)[0])
24 return r
25
26 # Gera os umeros aleat´orios
27 numbers = generate_numbers()
28
29 # Executa o algoritmo utilizando os umeros gerados
30 correctAnswer = algorithm(numbers)
31 # [[code:f"{correctAnswer:.2f}"]]
32
33 # Op¸c~oes de respostas erradas com base no resultado do algoritmo
34 # [[code:f"{correctAnswer+1.2:.2f}"]]
35 # [[code:f"{correctAnswer+4.8:.2f}"]]
36 # [[code:f"{correctAnswer-0.9:.2f}"]]
37 ]]
odigo 12.1: Exemplo de QM param´etrica para calcular MRU.
Francisco de Assis Zampirolli MCTest 181
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Figura 12.3: Recorte do PDF gerado para a quest˜ao de MRU do odigo 12.1.
Aten¸ao:
1. Toda vari´avel declarada em um etodo e utilizada no enunciado da quest˜ao deve ser
definida como global, como pode ser visto na linha 9 do odigo 12.1;
2. As importa¸oes de bibliotecas tamb´em devem ser realizadas nos etodos, como podem
ser vistos nas linhas 8 e 18.
Cria¸ao de Matriz
A quest˜ao a seguir ´e uma adapta¸ao daquela apresentada na Se¸ao 4.1 Tutoriais gerais sobre
a navega¸ao de quest˜oes, por´em, agora ´e parametrizada com as dimens˜oes da matriz e os elementos
atribu´ıdos. O odigo 12.2 ´e respons´avel por criar uma matriz M com dimens˜oes [[code:Linhas]] ×
[[code:Colunas]]. Cada elemento da matriz ´e calculado utilizando a ormula (i, j) = ((((i + 1) ×
[[code:a2]]) + ((j + 1) × [[code:a3]])) mod 100), onde i representa as linhas e j representa as colunas
da matriz. Na pr´atica, o odigo gera aleatoriamente o n´umero de linhas e colunas da matriz, num
intervalo espec´ıfico, assim como os valores de a2 e a3, escolhidos aleatoriamente entre as op¸oes [7,
13, 19] e [11, 17, 23], respectivamente. A matriz ´e inicializada com zeros e, em seguida, preenchida
utilizando dois la¸cos aninhados. Cada elemento M[i, j] recebe o resultado do alculo mencionado an-
teriormente. Por fim, a vari´avel global correctAnswer ´e definida como a soma de todos os elementos
da matriz M. Um exemplo de sa´ıda desta quest˜ao pode ser visualizado na Figura 12.4.
Experimentos
O m´etodo proposto para gerar quest˜oes param´etricas foi aplicado na disciplina de Processa-
mento da Informa¸ao (ou Introdu¸ao `a Programa¸ao, IP, ou tamb´em CS1) no segundo trimestre de
2018, com um total de 167 estudantes matriculados. A disciplina foi oferecida em um formato semi-
presencial, com aulas presenciais ocorrendo em quatro momentos ao longo do semestre: na abertura,
no primeiro exame, no projeto e no segundo exame.
A disciplina CS1 faz parte de um programa de bacharelado interdisciplinar oferecido pela
Francisco de Assis Zampirolli MCTest 182
12.1. MCTEST-4: GERANDO E CORRIGINDO QUEST
˜
OES CRIADAS NO L
A
T
E
X
Quest˜ao:
1 Criar uma matriz \( [[code:Linhas]] \times [[code:Colunas]] \) com elementos
2 \( (i,j) = ((((i+1) * [[code:a2]]) + ( ( j+1) * [[code:a3]])) \mod{100}) \).
3 Calcular a soma dos elementos desta matriz. Os ´ındices \(i\) s~ao as linhas
4 e \(j\) as colunas iniciadas com o valor \(0\).
5
6 [[def:
7 import numpy as np, random
8
9 # Gerar umero aleat´orio de linhas e colunas
10 Linhas = np.random.randint(4, 8)
11 Colunas = np.random.randint(4, 8)
12
13 # Escolher valores aleat´orios para a2 e a3
14 a2 = random.choice([7, 13, 19])
15 a3 = random.choice([11, 17, 23])
16
17 # Inicializar matriz com zeros
18 M = np.zeros((Linhas, Colunas), dtype=int)
19
20 # Preencher a matriz com os alculos
21 for i in range(Linhas):
22 for j in range(Colunas):
23 M[i, j] = (((i+1) * a2) + ((j+1) * a3)) % 100
24
25 # Calcular a soma dos elementos da matriz
26 correctAnswer = np.sum(M)
27
28 # Incluir nas alternativas da quest~ao:
29 # [[code:correctAnswer]] % primeira alternativa (sempre) correta
30 # [[code:createWrongAnswers([3,10])]] % cria 3 alter. erradas +/- 10
31 ]]
odigo 12.2: Exemplo de QM param´etrica para criar uma matriz.
Figura 12.4: Recorte do PDF gerado para a quest˜ao para criar uma matriz do odigo 12.2.
Francisco de Assis Zampirolli MCTest 183
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
universidade, e os estudantes que a cursam em origens diversas. O etodo se baseia no software
MCTest-4, que permite gerar arias vers˜oes diferentes da mesma quest˜ao sem repeti¸oes. Para cada
estudante, foram geradas trˆes quest˜oes de dificuldades diferentes (f´acil, m´edia e dif´ıcil), por´em com
a preocupa¸ao de ao deixar uma varia¸ao de exame mais dif´ıcil que a outra.
Os resultados dos experimentos mostraram que o m´etodo proposto foi eficaz na gera¸ao de
quest˜oes param´etricas para exames impressos. Al´em disso, o uso do MCTest-4 facilitou a corre¸ao
autom´atica dos exames com QMs.
12.2 MCTest-5: a vers˜ao web
A partir deste ponto, todas as publica¸oes foram conduzidas utilizando a vers˜ao web MCTest-5,
que ser´a mencionada simplesmente como MCTest. Esta vers˜ao possibilitou que os docentes empre-
gassem o MCTest sem a necessidade de instala¸oes locais em seus dispositivos, resultando em not´avel
simplifica¸ao tanto na cria¸ao como na avalia¸ao de exames, al´em da viabiliza¸ao do compartilha-
mento de quest˜oes. A seguir, ser˜ao apresentados os artigos diretamente vinculados a esta edi¸ao
online, corroborando sua efic´acia e usabilidade, por´em, ainda sem a integra¸ao do VPL no Moodle.
12.2.1 Artigo apresentando a primeira vers˜ao web do MCTest
O artigo de Zampirolli, Teubl e Batista (2019b) apresentou a primeira vers˜ao web do MCTest
para gera¸ao e corre¸ao de quest˜oes parametrizadas, aplic´avel a diversas disciplinas e institui¸oes
educacionais. O etodo desenvolvido permite criar exames com varia¸oes nos textos, mantendo o
mesmo conte´udo e n´ıvel de dificuldade. Para facilitar o processo, foram desenvolvidas interfaces
gr´aficas que permitem coletar informa¸oes sobre institui¸oes, cursos, disciplinas, opicos, turmas,
exames e quest˜oes.
O artigo apresenta as primeiras vers˜oes dessas interfaces gr´aficas, com ˆenfase na vers˜ao mais
recente discutida nos Cap´ıtulos 2 - Vis˜ao geral do MCTest, 4 - Quest˜oes est´aticas e 5 - Quest˜oes
param´etricas. Os resultados detalhados da implementa¸ao desse etodo ao apresentados neste
Cap´ıtulo 5.
O processo de gera¸ao de quest˜oes parametrizadas utiliza principalmente a linguagem de pro-
grama¸ao Python, com alguns elementos de L
A
T
E
X presentes no enunciado das quest˜oes. Os resultados
obtidos demonstram a eficiˆencia do sistema, mesmo em sua primeira vers˜ao, que foi implementada
em aginas web escritas em Django. O sistema ´e gratuito e oferece aos professores a capacidade de
gerar e corrigir exames automaticamente para centenas ou milhares de estudantes.
A seguir, ser˜ao apresentados exemplos das quest˜oes param´etricas discutidas neste artigo.
Equa¸oes param´etricas com equa¸ao e figura utilizando a biblioteca sympy
A seguir ´e apresentado um exemplo de quest˜ao param´etrica que inclui uma equa¸ao ma-
tem´atica e uma figura. Neste caso, a equa¸ao envolve fun¸oes seno, cosseno e integra¸ao.
Francisco de Assis Zampirolli MCTest 184
12.2. MCTEST-5: A VERS
˜
AO WEB
O odigo 12.3 primeiro importa as bibliotecas sympy e random. A biblioteca SymPy, dispon´ıvel
em docs.sympy.org, fornece fun¸oes para trabalhar com express˜oes simolicas. O odigo ent˜ao gera
trˆes n´umeros aleat´orios, a1, a2 e a3, escolhidos entre 3 e 6, 2 e 4, e 1 e 3, respectivamente. Esses
n´umeros ser˜ao usados para definir os parˆametros da fun¸ao. O odigo ent˜ao define a vari´avel simb´olica
x e a fun¸ao f. A fun¸ao f ´e uma combina¸ao de fun¸oes seno e cosseno com os parˆametros a1, a2
e a3. O odigo ent˜ao desenha o gr´afico da fun¸ao f no intervalo de -5 a 5. A imagem do gr´afico
´e salva no arquivo ./tmp/imgs180days/fz_figIntegral_01_{a1}_{a2}_{a3}_{h}.png. O odigo
enao calcula a integral da fun¸ao f. A integral ´e calculada usando a fun¸ao integrate da biblioteca
SymPy. O odigo enao converte a integral para nota¸ao L
A
T
E
X. Por fim, o odigo imprime as
seguintes express˜oes em nota¸ao L
A
T
E
X: a integral da fun¸ao f, a resposta correta `a pergunta e trˆes
respostas incorretas.
Aten¸ao:
1. A inclus˜ao de imagens em arquivo L
A
T
E
X pode tornar a compila¸ao para gerar o PDF
muito lenta;
2. Uma sugest˜ao ´e salvar as imagens no servidor do MCTest, dispon´ıvel no seguinte link:
http://mctest.ufabc.edu.br:8000/tmp/imgs180days/. Esse servidor antes do /tmp/
deve ser alterado a cada implanta¸ao do MCTest. O professor pode incluir um link para
essa imagem no enunciado da quest˜ao, permitindo que os estudantes acessem durante a
realiza¸ao do exame.
3. Todos os arquivos tempor´arios ao eliminados automaticamente do servidor ap´os 180
dias; contudo, essa configura¸ao pode ser ajustada;
4.
´
E fundamental incluir os parˆametros no nome do arquivo da imagem caso a quest˜ao
seja param´etrica e a imagem varie conforme esses parˆametros. Isso pode ser feito como
demonstrado nas linhas 22 a 29 do odigo 12.3, onde uma string contendo os valores
dos parˆametros ´e usada para gerar um objeto hash, convertido em uma string leg´ıvel e
adicionado ao nome do arquivo de imagem. Dessa forma, cada imagem gerada ter´a um
nome ´unico, garantindo que ao haja conflitos entre elas.
Merece uma explica¸ao especial o nome do arquivo onde ser´a salva a imagem gerada. Esse
arquivo deve ser ´unico, minimizando a chance de criar um arquivo com o mesmo nome de outro
que a existe. Para garantir isso, ´e utilizada a biblioteca hashlib na linha 23 do odigo 12.3. Em
seguida, o odigo cria uma string s que cont´em os valores dos parˆametros a1, a2 e a3. Essa string
´e usada para criar um objeto hash, que ser´a usado para gerar um nome ´unico para o arquivo de
imagem. Depois, o objeto hash ´e convertido em uma string leg´ıvel e adicionado ao nome do arquivo
de imagem. Esse nome ´e composto pelo prefixo ./tmp/imgs180days/fz_figIntegral_01_, seguido
pelos valores dos parˆametros a1, a2 e a3 e pelo hash gerado anteriormente. Por fim, o sufixo .png
indica que a imagem ser´a salva em formato PNG. Dessa forma, ´e poss´ıvel gerar imagens ´unicas para
diferentes valores dos parˆametros.
Francisco de Assis Zampirolli MCTest 185
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Quest˜ao:
1 A integral da fun¸c~ao \([[code:a0]]\) tem seu gr´afico representado abaixo.
2 Calcule o valor da integral e marque a alternativa correta.
3
4 \begin{figure}[ht!]
5 \centering \includegraphics[scale=0.7]{[[code:figura]]}
6 \centerline{Figura da integral}
7 \end{figure}
8
9 [[def:
10 from sympy import symbols, sin, cos, plot, latex, Integral, integrate
11 import random
12
13 # Gera¸c~ao dos par^ametros aleat´orios
14 a1 = random.randrange(3, 6, 1)
15 a2 = random.randrange(2, 4, 1)
16 a3 = random.randrange(1, 3, 1)
17
18 # Defini¸c~ao da vari´avel simb´olica e da fun¸c~ao
19 x = symbols('x')
20 f = a1*sin(a2*x) - a3*cos(x)
21
22 # Plotagem da fun¸c~ao
23 import hashlib
24 s =str([a1,a2,a3])
25 h = hashlib.md5(s.encode()) # create hash - arquivo ´unico
26 h = str(h.hexdigest())
27 p = plot(f, (x, -5, 5), show=False)
28 figura = f'./tmp/imgs180days/fz_figIntegral_01_{a1}_{a2}_{a3}_{h}.png'
29 p.save(figura)
30
31 # alculo da integral e convers~ao para nota¸c~ao LaTeX
32 a0 = latex(Integral(f, x))
33 correctAnswer = latex(integrate(f, x))
34 error1 = latex(integrate(f + x, x))
35 error2 = latex(integrate(f - x, x))
36 error3 = latex(integrate(x**5 + x + 1, x))
37 # nas alternativas: \([[code:correctAnswer]]\); \([[code:error1]]\); ...
38 ]]
odigo 12.3: Quest˜ao param´etrica com equa¸ao e figura.
Aten¸ao:
A principal dificuldade ao lidar com quest˜oes param´etricas usando a biblioteca SymPy ´e de-
finir corretamente o intervalo das vari´aveis aleat´orias e tamb´em as respostas incorretas das
alternativas, sem gerar solu¸oes inexistentes.
Francisco de Assis Zampirolli MCTest 186
12.2. MCTEST-5: A VERS
˜
AO WEB
Figura 12.5: Recorte do PDF gerado para a quest˜ao param´etrica com equa¸ao e figura referente ao
odigo 12.3.
Quest˜ao param´etrica com grafo e figura
A quest˜ao param´etrica apresentada no odigo 12.4 cria o grafo G = (V, E), onde V =
n
1
, n
2
, · · · , n
p
´e um conjunto de os (ou ertices) e E ´e um conjunto de arestas (ou arcos), sendo
que cada e E ´e dado por e = (n
i
, n
j
) para n
i
, n
j
V . As arestas podem ter peso e o exemplo
resolve o problema de encontrar o caminho de peso m´ınimo. Um caminho ´e uma sequˆencia de v´ertices
adjacentes, que determina uma sequˆencia de arestas, e o peso do caminho ´e calculado somando os
pesos de suas arestas.
Para gerar a imagem apresentada na Figura 12.6, ser´a utilizado o etodo draw da biblioteca
NetworkX (networkx.org) em conjunto com a biblioteca Matplotlib (matplotlib.org). No entanto,
´e importante notar que o odigo precisa ser modificado para tratar o caso em que existem dois ou
mais caminhos m´ınimos com o mesmo peso. Uma poss´ıvel solu¸ao seria modificar o odigo para
descartar os pesos gerados nas linhas 16 e 17 quando existirem dois caminhos m´ınimos com o mesmo
peso. Essa modifica¸ao ´e an´aloga `a condi¸ao de aceitar apenas caminhos com pelo menos 5 ertices,
verificada nas linhas 21 e 22. Dessa forma, o odigo garantiria que apenas um caminho m´ınimo seria
considerado na gera¸ao da imagem, o que ´e necess´ario para garantir que a QM com alternativas
Francisco de Assis Zampirolli MCTest 187
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
definidas nas linhas 30 e 31 tenha apenas uma correta.
Quest˜ao:
1 Qual ´e o caminho de Dijkstra neste grafo, entre os os \(a\) e \(e\), com os
2 seguintes pesos \\ \verb|[[code:grafo]]|?
3
4 \begin{figure}[!h]
5 \centering\includegraphics[scale=0.7]{[[code:pathGrafico]]}
6 \end{figure}
7
8 [[def:
9 import matplotlib.pyplot as plt, networkx as nx
10 from itertools import permutations
11
12 while True:
13 plt.clf()
14 G = nx.Graph() # Defini¸c~ao do grafo
15 w1,w2,w3,w4,w5,w6,w7 = random.sample(range(1,10), 7)
16 edges=[('a','b',w1),('b','c',w2),('a','c',w3),('c','d',w4),
17 ('b','d',w5),('d','e',w6),('e','c',w7)]
18 G.add_weighted_edges_from(edges)
19 grafo = str(edges)
20
21 v = nx.dijkstra_path(G, 'a', 'e') # alculo do caminho ınimo
22 if len(v)<5: continue # aceita pelo menos 5 os
23
24 perm_list = [] # criar permuta¸c~oes
25 for perm in permutations(v):
26 if perm[0] == v[0] and perm[-1] == v[-1]:
27 perm_list.append(perm)
28 break
29
30 correctAnswer = str(perm_list[0])
31 error1,error2,error3 = str(perm_list[1]), str(perm_list[2]), str(perm_list[3])
32 # nas alternativas: \verb|[[code:correctAnswer]]|\\ ; \verb|[[code:error1]]|\\ ...
33
34 pos = nx.spring_layout(G) # Plotagem do grafo
35 nx.draw(G, pos=pos)
36 nx.draw_networkx_labels(G, pos=pos)
37 nx.draw_networkx_edge_labels(G, pos=pos)
38
39 import hashlib # Salvando a figura
40 s =str(edges)
41 h = hashlib.md5(s.encode()) # create hash - arquivo ´unico
42 pathGrafico = 'figGrafo(' + str(h.hexdigest()) + ')'
43 plt.savefig(pathGrafico)
44 ]]
odigo 12.4: QM param´etrica com grafo e figura.
Francisco de Assis Zampirolli MCTest 188
12.2. MCTEST-5: A VERS
˜
AO WEB
Figura 12.6: Recorte do PDF gerado para a quest˜ao param´etrica com grafo e figura referente ao
odigo 12.4.
Quest˜ao param´etrica com matriz e figura
No arquivo static/Utils.py, localizado no GitHub github.com/fzampirolli/mctest, a arios
m´etodos ´uteis para a cria¸ao de quest˜oes param´etricas. Um desses m´etodos ´e o drawMatrix(), que
permite desenhar uma matriz, conforme ser˜ao demonstrados nos odigos desta se¸ao.
A quest˜ao apresentada nos odigos 12.6 e 12.7 prop˜oe a cria¸ao de um programa que manipula
matrizes para identificar e ativar elementos com determinada condi¸ao em rela¸ao aos seus vizinhos.
O programa recebe uma matriz de entrada E e cria uma matriz de sa´ıda F , inicializada com o
valor “-1”. Um elemento (i, j) da matriz E ´e considerado “maior” ou “menor” em rela¸ao aos seus
vizinhos nas dire¸oes especificadas. As dire¸oes ao codificadas numericamente conforme a tabela
fornecida na quest˜ao (ver Figura 12.7). O programa deve percorrer a matriz de entrada E e, para
cada elemento que atenda `a condi¸ao de ser “maior” ou “menor” em rela¸ao aos seus vizinhos, o valor
correspondente na matriz de sa´ıda F deve ser atualizado. Ap´os a ativao de todos os elementos que
atendem `a condi¸ao, o programa deve imprimir a matriz F . Al´em disso, ao fornecidos exemplos de
uma matriz de entrada e a sa´ıda correspondente, exibidos na forma de imagens. O programa deve
conseguir lidar com matrizes de qualquer dimens˜ao e garantir que os elementos de borda da matriz F
Francisco de Assis Zampirolli MCTest 189
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
M´etodo: desenha matriz
1 def drawMatrix(A, myfile):
2 """
3 Desenha uma representa¸c~ao visual de uma matriz e salva a imagem em um arquivo.
4 Exemplo de uso:
5 No enunciado da quest~ao, desenhe a seguinte figura
6 (copie o odigo abaixo para uma nova quest~ao):
7 \begin{figure}[h!]
8 \centering
9 \includegraphics[scale=0.55]{[[code:f"./tmp/imgs180days/{pathGraficoA}"]]}
10 \end{figure}
11
12 [[def:
13 import numpy as np
14 Lin, Col = 4, 5
15 A = np.random.randint(10, size=(Lin, Col))
16 # Plotagem da fun¸c~ao
17 import hashlib
18 s =str([Lin, Col])
19 h = hashlib.md5(s.encode()) # create hash - arquivo ´unico
20 h = str(h.hexdigest())
21 fig0 = f'fz_figExample01{Lin}_{Col}_{h}.png'
22 drawMatrix(A, fig0)
23 ]] """
24 import matplotlib.pyplot as plt
25
26 fig, ax = plt.subplots()
27 mat = ax.imshow(A, cmap='Pastel1', interpolation='nearest')
28
29 for x in range(A.shape[0]):
30 for y in range(A.shape[1]):
31 ax.annotate(str(A[x, y])[0], xy=(y, x), horizontalalignment='center',
32 verticalalignment='center')
33
34 plt.show()
35 fig.savefig(f'./tmp/imgs180days/{myfile}.png', dpi=300)
36 plt.close()
odigo 12.5: etodo para desenhar matriz.
sejam mantidos como “-1”. O exemplo fornecido mostra uma matriz de entrada e a matriz de sa´ıda
resultante ap´os a ativao dos elementos que atendem `a condi¸ao especificada. As imagens mostram
a representa¸ao gr´afica das matrizes. Para simplificar a resolu¸ao desta quest˜ao, ´e crucial destacar
que a
0
= (i, j) ao se encontra em um pixel de borda. Em outras palavras, na matriz F , todos os
elementos correspondentes `as bordas devem ser mantidos com o valor “-1”. Um exemplo da sa´ıda
dessa quest˜ao pode ser observado na Figura 12.7.
Francisco de Assis Zampirolli MCTest 190
12.2. MCTEST-5: A VERS
˜
AO WEB
Quest˜ao:
1 Um elemento \(a_0=(i,j)\) ´e de uma matriz dito ser \textbf{[[code:direcao]]
2 [[code:maiormenor]]} se seu valor ´e [[code:maiormenor]] do que o valor de
3 seus vizinhos nas dire¸c~oes [[code:direcao_viz]], considerando a seguinte
4 codifica¸c~ao para as poss´ıveis dire¸c~oes:
5 \
6 \begin{table}[h!]
7 \centering\vspace{-2mm}
8 \begin{tabular}{lllll}
9 \cline{1-3}
10 \multicolumn{1}{|l|}{\(a_8=\) Noroeste} & \multicolumn{1}{l|}{\(a_1=\) Norte} &
11 \multicolumn{1}{l|}{\(a_2=\) Nordeste} & & \\ \cline{1-3}
12 \multicolumn{1}{|l|}{\(a_7=\) Oeste} & \multicolumn{1}{l|}{\(a_0=(i,j)\)} &
13 \multicolumn{1}{l|}{\(a_3=\) Leste} & & \\ \cline{1-3}
14 \multicolumn{1}{|l|}{\(a_6=\) Sudoeste} & \multicolumn{1}{l|}{\(a_5=\) Sul} &
15 \multicolumn{1}{l|}{\(a_4=\) Sudeste} & & \\ \cline{1-3}
16 \end{tabular}
17 \end{table}
18
19 \vspace{-2mm}
20 \noindent Fa¸ca um programa para criar e ler uma matriz de entrada \(E\) de inteiros.
21 Seu programa deve criar tamb´em uma matriz de sa´ıda \(F\) e inicializa-la com o valor
22 ``-1''. Diz-se que um elemento \((i,j)\) de \(F\) ´e \emph{ativado} quando ´e atribu´ıda a
23 \(F[i,j]\) o valor de \(E[i,j]\), isto ´e, quando \(F[i,j] \leftarrow E[i,j]\). O
24 seu programa deve tamb´em imprimir a matriz \(F\) depois de ativar todos os seus
25 elementos que s~ao \textbf{[[code:direcao]] [[code:maiormenor]]}. Veja a seguir
26 um exemplo \([[code:Linhas]] \times [[code:Colunas]]\) com a entrada e a sa´ıda
27 correspondente. \\
28
29 \noindent {\bf Obs.:} considere \(a_0=(i,j)\) n~ao pertencer a um pixel de borda, isto
30 ´e, na matriz \(F\) todos os elementos de borda ficam com valor
``-1''. O seu programa
31 deve funcionar para matrizes de quaisquer dimens~oes.
32
33 \begin{table}[h!]\vspace{-4mm}
34 \begin{tabular}{cc}
35 \includegraphics[scale=0.56]{[[code:f"./tmp/imgs180days/{pathGraficoA}"]]} &
36 \includegraphics[scale=0.56]{[[code:f"./tmp/imgs180days/{pathGraficoB}"]]}
37 \end{tabular}
38 \end{table}
39
40 \end{table}
odigo 12.6: Quest˜ao param´etrica com matriz Parte 1: Descri¸ao de quest˜ao.
Resultados
O MCTest foi aplicado na disciplina de Processamento da Informa¸ao. Os resultados indicam
que o m´etodo ´e eficaz na gera¸ao de exames com varia¸oes nos textos, mantendo o mesmo conte´udo
e n´ıvel de dificuldade. Al´em disso, os estudantes consideraram as quest˜oes claras e relevantes para o
conte´udo da disciplina.
Foram apresentados trˆes exemplos de quest˜oes param´etricas, mas a quantidade de tipos e
varia¸oes est´a diretamente relacionada `a criatividade do professor que as prepara.
Francisco de Assis Zampirolli MCTest 191
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Quest˜ao:
1 [[def:
2 import json, random, numpy as np
3
4 def direcoes(offset, dir):
5 """ etodo que retorna as dire¸c~oes adjacentes `a dire¸c~ao dada. """
6 dir1, dir2 = (dir - 1) % 8 + 1, (dir + 1) % 8 + 1
7 return (dir1, dir, dir2)
8
9 # Par^ametros utilizados no enunciado da quest~ao
10 #>>>> BEGIN
11 dir = random.choice([1,2,3,4,5,6,7,8])
12 direcaoAll = ["Norte","Nordeste","Oeste","Sudeste","Sul","Sudoeste","Leste","Noroeste"]
13 direcao = direcaoAll[dir-1]
14
15 maiormenor = random.choice(["maior", "menor"])
16 m, n = random.randrange(7, 9, 1), random.randrange(15, 21, 1)
17 Linhas, Colunas = m, n
18
19 #direcoes 0 1 2 3 4 5 6 7 8
20 offset = [[0,0],[-1,0],[-1,1],[0,1],[1,1],[1,0],[1,-1],[0,-1],[-1,-1]]
21 (dir1,dir0,dir2) = direcoes(offset,dir)
22 direcao_viz = "$a_"+str(dir1)+"$, $a_"+str(dir0)+"$, $a_"+str(dir2)+"$"
23 #<<<< END
24
25 A = (np.random.random((m, n)) * 10).astype(int)
26 B = (np.zeros(A.shape) - 1).astype(int)
27 for i in range(1, m - 1):
28 for j in range(1, n - 1):
29 if maiormenor == "menor":
30 if (A[i + offset[dir1][0], j + offset[dir1][1]] > A[i, j]
31 and A[i + offset[dir0][0], j + offset[dir0][1]] > A[i, j]
32 and A[i + offset[dir2][0], j + offset[dir2][1]] > A[i, j]):
33 B[i, j] = A[i, j]
34 else:
35 if (A[i + offset[dir1][0], j + offset[dir1][1]] < A[i, j]
36 and A[i + offset[dir0][0], j + offset[dir0][1]] < A[i, j]
37 and A[i + offset[dir2][0], j + offset[dir2][1]] < A[i, j]):
38 B[i, j] = A[i, j]
39
40 import hashlib
41 s =''.join([str(i) for i in A.flatten()]) # 2d to 1d to str
42 h = hashlib.md5(s.encode()) # create hash - arquivo ´unico
43 pathGrafico = 'figRosa(' + direcao + ')(' + maiormenor + ')(' + str(h.hexdigest()) + ')'
44 pathGraficoA, pathGraficoB = pathGrafico + 'a.png', pathGrafico + 'b.png'
45
46 drawMatrix(A, pathGraficoA)
47 drawMatrix(B, pathGraficoB)
48 ]]
odigo 12.7: Quest˜ao param´etrica com matriz Parte 2: Bloco de odigo em Python.
Francisco de Assis Zampirolli MCTest 192
12.2. MCTEST-5: A VERS
˜
AO WEB
Figura 12.7: Recorte do PDF gerado para a quest˜ao param´etrica com matriz criada pelos odigos
12.6 e 12.7.
12.2.2 Artigo descrevendo o MCTest em conjunto com Google Forms e
Google Sheets
O artigo de Zampirolli et al. (2020) aborda a adapta¸ao do MCTest para solucionar o problema
de avalia¸ao a distˆancia durante a pandemia. A solu¸ao permite criar quest˜oes param´etricas com
Python e L
A
T
E
X. A corre¸ao autom´atica ´e feita com o Google Forms e Google Sheets, constituindo
uma contribui¸ao original. A solu¸ao adaptada foi aplicada com sucesso em uma turma de alculo
1 com 100 estudantes.
M´etodo
O MCTest permite a gera¸ao eficiente de QTs ou de QMs que podem ser modificadas pa-
rametricamente, produzindo muitas varia¸oes dessas quest˜oes. Isso ´e realizado por meio de arias
bibliotecas da linguagem de programa¸ao Python, com as quais o MCTest calcula respostas auto-
maticamente. O MCTest tem a vantagem de permitir quest˜oes param´etricas criadas com L
A
T
E
X e
Python, com exemplos de uso apresentados no artigo e reproduzidos nesta se¸ao.
O artigo descreve um desafio enfrentado na adapta¸ao do MCTest para avalia¸oes online
Francisco de Assis Zampirolli MCTest 193
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
durante a pandemia, a que o sistema originalmente gerava exames em papel para serem aplicados
em sala de aula. Para solucionar esse desafio, os autores prop˜oem uma solu¸ao adaptada do MCTest
que gera exames e os envia por e-mail aos estudantes em formato PDF, com submiss˜oes realizadas
em uma planilha do Google Forms preenchida pelos estudantes e compilada ao professor em uma
planilha do Google Sheets.
A planilha do Google Sheets ´e adaptada para a corre¸ao autom´atica, conforme apresentado
na Figura 12.8. Esta planilha tamb´em est´a dispon´ıvel em github.com/fzampirolli/mctest, no arquivo
static/MCTest_Forms.ods. A nota do estudante ´e calculada com base nas respostas enviadas, na
chave de respostas armazenada na aba templateAV1 e nas varia¸oes sorteadas para cada estudante
na aba variationsAV1. A identifica¸ao, nome e e-mail de cada estudante ao armazenados na aba
listStudents. Todas essas abas ao preenchidas com opias dos arquivos enviados pelo MCTest,
exemplificados a seguir. A pontua¸ao ´e calculada para cada quest˜ao, incluindo uma QT com resposta
exata, nas colunas H e I (Q4 e Q5, respectivamente). Os autores explicam em detalhes como a
corre¸ao autom´atica ´e realizada nas planilhas do Google Sheets, incluindo a corre¸ao manual pelo
professor para avaliar a demonstra¸ao da resposta exata apresentada pelo estudante para essa QT.
Os autores estenderam o odigo do MCTest para permitir a corre¸ao autom´atica de QTs,
incluindo a possibilidade do professor receber dois arquivos CSV: um com as chaves de respostas
para cada quest˜ao e outro com o n´umero da varia¸ao enviada para cada estudante. Al´em disso, o
odigo foi adaptado para permitir a cria¸ao de QTs com respostas param´etricas exatas, inseridas em
um arquivo CSV e posteriormente na planilha do Google Sheets. Os autores apresentam exemplos
de QMs e QTs, como a apresentada na Se¸ao 12.2.1 Equa¸oes param´etricas com equa¸ao e figura
utilizando a biblioteca sympy, e explicam em detalhes como o MCTest lida com quest˜oes param´etricas
e a corre¸ao autom´atica de QTs. Um exemplo de QT exata foi apresentado no odigo 8.1.
Figura 12.8: Planilha mostrando o question´ario preenchido de um estudante. Adaptado de Zampirolli
et al. (2020).
Francisco de Assis Zampirolli MCTest 194
12.2. MCTEST-5: A VERS
˜
AO WEB
Arquivo CSV copiado na aba templateAV1, com os gabaritos. Ver explica¸oes na Se¸ao
8.3 Detalhando os gabaritos no arquivo CSV (as colunas ao separadas por v´ırgula)
variation Q1 Q2 Q3 Q4 Q5
1 C E D 3.47
2 B D B 3.99
3 A B C 4.07
4 D E C 4.11
5 E B A 4.29
6 E A C 3.94
7 B B D 3.56
8 B B D 4.16
9 B E B 3.73
10 C D B 4.63
Arquivo CSV copiado na aba variationsAV1, com os estudantes. Ver explica¸oes na
Se¸ao 8.4 Criando o PDF do exame com QR+QM+QT
Room ID Name Variation
Room1 1111 Student One 10
Room1 2222 Student Two 8
Arquivo CSV copiado na aba listStudents, com as varia¸oes. Ver explica¸oes na Se¸ao
3.3.1 Criar turma com arquivo CSV
1111 Student One student1@email.com
2222 Student Two student2@email.com
Experimentos
Os autores aplicaram o MCTest em uma turma da disciplina de alculo 1 na Universidade
Federal do ABC, composta por 100 estudantes. A disciplina ´e parte do Bacharelado em Ciˆencia e
Tecnologia e possui alta taxa de reprovao. Durante sete semanas, os estudantes assistiram `as aulas
online e fizeram dois testes formativos, cada um contendo cinco quest˜oes param´etricas, duas QTs
e trˆes QMs. Os testes foram dados no mesmo formato do modelo apresentado na Figura 12.9, com
quest˜oes e alternativas sorteadas. O Teste 1 foi aplicado online e os estudantes tiveram 24 horas
para responder. O Teste 2, assim como o Exame 1, foram mais complexos e contaram para a nota
final. Os estudantes tiveram dificuldades nas QTs, mas obtiveram bom desempenho nas QMs. A
taxa de erros foi baixa nos testes e exames, e os estudantes ao relataram problemas t´ecnicos na
submiss˜ao das respostas. Os autores suspeitam que a facilidade de acesso a recursos online possa
ter influenciado no desempenho dos estudantes nas QTs. Para manter os estudantes engajados, o
professor aplicou um terceiro exame contendo apenas QTs com submiss˜ao de imagens digitalizadas
das respostas manuscritas.
Francisco de Assis Zampirolli MCTest 195
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Figura 12.9: Exemplo de exame utilizado em alculo 1. Adaptado de Zampirolli et al. (2020).
Os autores abordam a quest˜ao do pl´agio em contextos online e prop˜oem medidas preventivas,
incluindo a administra¸ao de exames individualizados, a imposi¸ao de restri¸oes temporais e a super-
vis˜ao por meio de webcams. Contudo, eles reconhecem que em circunstˆancias extraordin´arias, como
a pandemia, torna-se necess´ario empregar ferramentas que viabilizem as atividades de aprendizado,
como mencionado no artigo.
Os resultados dos experimentos mostraram ser importante elaborar quest˜oes online com enun-
ciados melhor elaborados para os estudantes poderem raciocinar para achar as solu¸oes e ao achar
respostas prontas na internet. Os autores destacam que o MCTest pode ser uma ferramenta valiosa
para manter os estudantes engajados em atividades com QMs e sugerem a aplica¸ao de arios exames
desse tipo, com corre¸ao autom´atica, para estimular a participa¸ao dos estudantes.
Francisco de Assis Zampirolli MCTest 196
12.2. MCTEST-5: A VERS
˜
AO WEB
12.2.3 Artigo descrevendo a ado¸ao de QMs com pesos diferentes nas
alternativas
O artigo de Zampirolli et al. (2021) apresenta uma adapta¸ao do sistema MCTest que permite
a avalia¸ao automatizada de QMs com respostas ponderadas.
M´etodo
O sistema MCTest original produz um arquivo CSV que inclui as respostas para cada QM,
com as pontua¸oes atribu´ıdas a cada alternativa. A adapta¸ao proposta neste artigo introduz uma
coluna adicional no arquivo de respostas para cada quest˜ao, indicando o peso de cada alternativa.
O sistema de avalia¸ao autom´atica calcula a nota do estudante ponderando a pontua¸ao de cada
alternativa de acordo com seu respectivo peso.
O processo de cria¸ao de quest˜oes e exames ´e o mesmo apresentado nos cap´ıtulos anteriores.
A diferen¸ca est´a na forma de calcular a nota do estudante. Esta se¸ao detalhar´a esse processo.
A planilha utilizada no artigo dispon´ıvel no GitHub, em github.com/fzampirolli/mctest, no
arquivo static/GRADE.ods. Essa planilha possui duas abas principais. A primeira ´e a aba BD, con-
tendo as corre¸oes geradas pelo MCTest ao submeter os exames digitalizados, conforme visualizado
na Figura 12.10. A segunda aba ´e para o alculo da nota final, como apresentado na Figura 12.11.
Figura 12.10: Visualiza¸ao do arquivo CSV com as corre¸oes. Adaptado de Zampirolli et al. (2021).
Na Figura 12.10, as colunas Q a Z na planilha mostram o ID da quest˜ao no BD e a ordem das
alternativas sorteadas para os estudantes. A c´elula Q2, por exemplo, possui o valor 11261203, onde
1126 ´e o ID da quest˜ao e 1203 indica a ordem das alternativas sorteadas (A=1, B=2, C=0, D=3).
Com ormulas simples, ´e poss´ıvel calcular a nota final atribuindo pesos `as alternativas. Na Figura
12.11, o peso da alternativa correta ´e 1, as parcialmente corretas em peso 0,2 cada e a alternativa
absurda tem peso 0. O campo amarelo na Figura 12.11 exibe a pontua¸ao de cada quest˜ao, onde
Francisco de Assis Zampirolli MCTest 197
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Figura 12.11: alculo final do exame. Adaptado de Zampirolli et al. (2021).
cada linha corresponde ao QR de um estudante. A nota total do estudante para o exame ´e calculada
somando as notas de cada quest˜ao.
O sistema MCTest pode ser usado para avaliar exames realizados em formato f´ısico ou online.
No caso de exames realizados em formato f´ısico, os estudantes respondem `as quest˜oes em um QR
impresso, como apresentado na Figura 12.9. O QR impresso ´e enao digitalizado e o sistema MCTest
´e usado para corrigir as respostas. No caso de exames realizados em formato online, os estudantes
respondem `as quest˜oes em um navegador da web, como descrito na Se¸ao 12.2.2 Artigo descrevendo
o MCTest em conjunto com Google Forms e Google Sheets.
Experimentos
O etodo deste artigo foi aplicado a exames realizados em formato f´ısico ou online e validado
com um total de 607 estudantes de trˆes diferentes disciplinas: Redes e Comunica¸oes, Natureza da
Informa¸ao e Compiladores. Os resultados mostraram que o sistema de corre¸ao autom´atica ´e preciso
e confi´avel. O sistema foi bem avaliado pelos estudantes, que o consideraram uma ferramenta ´util
para a avalia¸ao de seus conhecimentos.
Artigo comparando diferentes processos seletivos na EPUFABC
O artigo de Zampirolli et al. (2021a) analisa o processo de sele¸ao para a Escola Preparat´oria da
UFABC (EPUFABC) aplicado a milhares de candidatos de escolas p´ublicas da regi˜ao. A EPUFABC
oferece um curso gratuito voltado exclusivamente para estudantes de baixa renda que se inscrever˜ao
em exames de entrada na universidade. O processo de sele¸ao emprega a Teoria Cl´assica ao Item
(TCI), mas a d´uvidas sobre a imparcialidade dos crit´erios de desempate. Por isso, os autores
contrastam a abordagem atual do processo com a Teoria da Resposta ao Item (TRI) (BIRNBAUM,
1968). Os resultados mostram que o m´etodo TRI pode melhorar substancialmente o processo de
sele¸ao do EPUFABC.
O artigo menciona que o exame de entrada da Universidade de ao Paulo (USP) ´e um exemplo
de sele¸ao desafiadora, com in´umeros candidatos para poucas vagas. Para exames com alta taxa de
Francisco de Assis Zampirolli MCTest 198
12.2. MCTEST-5: A VERS
˜
AO WEB
inscri¸ao, lidar com a nota de corte, na qual muitos candidatos provavelmente ter˜ao pontua¸ao igual,
´e um desafio.
Para resolver esse problema, o Exame Nacional do Ensino edio (ENEM) no Brasil passou
a utilizar a Teoria da Resposta ao Item (TRI) desde 2009. A TRI tamem ´e empregada em outros
pa´ıses, como nos Estados Unidos, em exames como o TOEFL.
M´etodo
Os autores foram inspirados pela metodologia do ENEM e avaliaram o processo de sele¸ao
utilizado pela EPUFABC, que atende a milhares de candidatos desde 2010. O exame de admiss˜ao
da EPUFABC ´e composto por 10 QMs para cada ´area de conhecimento, al´em de um exame de
Gram´atica Portuguesa, que substitui a reda¸ao exigida pelo ENEM. As ´areas avaliadas ao: Ciˆencias
Humanas, Ciˆencias da Natureza, L´ınguas e odigos (Inglˆes-Espanhol-Portuguˆes) e Matem´atica.
A avalia¸ao comparou o Processo de Sele¸ao do EPUFABC aplicado de 2019 a 2021 com o
ENEM, que adota o modelo log´ıstico de trˆes parˆametros da TRI. Foram desenvolvidos trˆes scripts
em Python e R no Google Colab para realizar as an´alises. Cada script passa por trˆes etapas: pr´e-
processamento, gera¸ao da matriz de respostas (em Python) e an´alise estat´ıstica (em R). Todos os
dados utilizados no artigo podem ser baixados em vision.ufabc.edu.br/MCTest/public/IRT2021, que
inclui todos os arquivos CSV utilizados pelos Notebooks, mas sem a identifica¸ao dos candidatos.
Para compara¸oes, foram utilizados tamem os microdados do ENEM de 2019 disponibilizados
pelo Minist´erio da Educa¸ao. Os dados do ENEM requerem um pr´e-processamento complexo devido
ao seu tamanho, envolvendo segmenta¸ao, extra¸ao de colunas relevantes e gera¸ao de matrizes de
respostas.
Experimentos
Este estudo baseia-se em trˆes conjuntos de dados: (1) MCTest (2019 e 2020), (2) Moodle
(2021) e (3) ENEM (2019). Tanto a Teoria Cl´assica ao Item (TCI) quanto a Teoria da Resposta ao
Item (TRI) foram utilizadas para analisar e comparar os resultados.
Os exames TCI de 2019 e 2020 foram realizados presencialmente em um abado, com 50 QMs
nas cinco ´areas de conhecimento referidas anteriormente. Os exames foram corrigidos automatica-
mente pelo sistema MCTest, conforme explicado no Cap´ıtulo 7 Exames com Quadro de Respostas
(QR). Em 2021, devido `a pandemia de COVID-19, o processo de sele¸ao foi adaptado para exames
online, realizados ao longo de cinco dias. Os candidatos acessaram material de ensino (videoaulas)
e QMs na plataforma Moodle e tiveram 24 horas para responder. A pontua¸ao final considerou o
n´umero de respostas corretas, presen¸ca nos cinco dias de exame e idade do candidato.
Em 2019, houve 2.033 candidatos no TCI, enquanto em 2020 houve 2.043 candidatos. Em
ambos os anos, 633 candidatos foram selecionados para a EPUFABC, sendo metade para aulas no
per´ıodo da tarde e a outra metade no per´ıodo da noite.
No exame de 2021, os candidatos realizaram o exame online na plataforma Moodle, totalizando
2.768 participantes. A EPUFABC ofereceu 380 vagas para o ano de 2021, sendo 190 vagas para cada
per´ıodo, e as aulas foram disponibilizadas remotamente na plataforma Moodle.
Francisco de Assis Zampirolli MCTest 199
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Foram calculadas edias e desvios padr˜ao para os exames de todas as ´areas de conhecimento
dos processos TCI2019, TCI2020 e ENEM2019. As an´alises tamb´em inclu´ıram Curvas Caracter´ısticas
do Item (CCI) da TRI. A compara¸ao entre TCI e TRI mostrou que o m´etodo TRI pode ser ´util
como crit´erio de desempate em processos de sele¸ao, a que considera a habilidade do candidato em
responder corretamente `as quest˜oes.
O estudo tamb´em destacou a melhora significativa nas notas dos candidatos no TCI2021,
que foi realizado online com mais tempo dispon´ıvel para responder `as quest˜oes, em compara¸ao
com os processos presenciais anteriores. As an´alises mostraram que as habilidades dos candidatos
em TCI2021, representadas pelas curvas CCI, estavam mais concentradas no lado direito da escala,
indicando que candidatos com habilidades menores conseguiram acertar mais quest˜oes devido ao
tempo extra para responder cada exame.
Ap´os a continuidade deste trabalho, outro artigo de Zampirolli et al. (2021b) foi publicado,
descrevendo o desenvolvimento de um sistema interativo chamado ENEM interativo e dispon´ıvel em
mctest.ufabc.edu.br:8000/ENEM. Esse sistema permite que os estudantes utilizem exames antigos do
ENEM e os microdados disponibilizados pelo INEP para estudo. No ENEM Interativo, os exames em
formato PDF ao convertidos para HTML e, automaticamente, bot˜oes de resposta s˜ao incorporados
para cada quest˜ao. Ao finalizar cada exame, o bot˜ao de estat´ısticas abre uma nova agina que
apresenta informa¸oes como o gabarito, as respostas dos estudantes, as habilidades (valores fornecidos
pelo INEP) e gr´aficos. O sistema proporciona uma plataforma mais interativa e acess´ıvel para
os estudantes explorarem exames anteriores do ENEM e analisarem seu desempenho em detalhes,
incluindo informa¸oes estat´ısticas relevantes para a compreens˜ao de seu progresso e habilidades.
12.3 Considera¸oes finais
Neste cap´ıtulo, foram discutidas as vers˜oes 4 e 5 do MCTest, assim como os artigos que as
acompanharam. Ao longo do tempo, o MCTest passou por uma significativa evolu¸ao, saindo de
suas primeiras vers˜oes focadas em exames impressos e se tornando uma vers˜ao web atual, integrada
tamb´em ao Moodle. Essa transforma¸ao trouxe diversos benef´ıcios e avan¸cos para o sistema.
Os experimentos e casos de uso apresentados nos artigos destacaram a aplicabilidade bem-
sucedida do MCTest em diversas situa¸oes reais de ensino. Isso refor¸ca a eficiˆencia e versatilidade do
sistema em diferentes contextos, abrangendo exames presenciais, online, individualizados e integra¸ao
com plataformas como o Google Forms. Esse recurso mostrou-se especialmente relevante durante a
pandemia de COVID-19, permitindo a continuidade da avalia¸ao educacional mesmo em cen´arios
remotos.
O MCTest-4 ´e um software desenvolvido para a corre¸ao de exames com QMs. Ele automatiza
o processo de corre¸ao, gerando resultados precisos e poupando tempo dos educadores. a o MCTest-
4.G foi criado para a gera¸ao de exames com QMs, permitindo a cria¸ao de exames distintos e
aleat´orios para cada estudante, proporcionando maior seguran¸ca na aplica¸ao dos exames.
A vers˜ao mais recente, o MCTest-5, ´e considerada um software web altamente funcional.
Al´em de possuir as funcionalidades do MCTest-4, o MCTest-5 permite a cria¸ao, corre¸ao e com-
Francisco de Assis Zampirolli MCTest 200
12.3. CONSIDERAC¸
˜
OES FINAIS
partilhamento de quest˜oes, apresentando recursos avan¸cados e integra¸ao com outras plataformas
educacionais, como o Moodle. No pr´oximo cap´ıtulo, ser˜ao destacadas especialmente as especificida-
des das quest˜oes que envolvem EPs integrados ao plugin VPL do Moodle.
Por fim, ´e relevante ressaltar que a maioria das publica¸oes efetuadas nesta vers˜ao web do
MCTest foram subsidiadas pelo projeto FAPESP, sob o processo 2018/23561-1, cujo t´ıtulo ´e “Um
sistema universal para a gera¸ao e corre¸ao autom´atica de quest˜oes parametrizadas”.
Francisco de Assis Zampirolli MCTest 201
CAP
´
ITULO 12. MCTEST VERS
˜
OES 4, 4.G E 5
Francisco de Assis Zampirolli MCTest 202
Cap´ıtulo 13
MCTest+Moodle+VPL
Conte´udo
13.1 MCTest-5, com Moodle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
13.2 MCTest-5, com Moodle+VPL . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
13.2.1 Artigo com a primeira integra¸ao entre MCTest+Moodle+VPL . . . . 204
13.2.2 Artigo aplicando a integra¸ao MCTest+Moodle+VPL em CS0 . . . . . 206
13.2.3 Artigo sobre o uso de m´ultiplas linguagens de programa¸ao em CS1 . . 208
13.2.4 Artigo aplicando a integra¸ao MCTest+Moodle+VPL em CS1 . . . . . 209
13.2.5 Artigo explorando a integra¸ao de jogos no ensino de CS0 . . . . . . . 210
13.3 Considera¸oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Neste cap´ıtulo, ser˜ao apresentados resumos dos artigos que relatam os m´etodos e experimentos
de integra¸ao entre o MCTest e o Moodle, com foco especial na utiliza¸ao do plugin VPL. A maioria
desses artigos a foi detalhada em cap´ıtulos anteriores deste livro e, portanto, ao ser´a refeita a
apresenta¸ao completa. Os experimentos foram realizados principalmente nas disciplinas de Bases
Computacionais da Ciˆencia (CS0) e Processamento da Informa¸ao (CS1) do Bacharelado em Ciˆencia
e Tecnologia da Universidade Federal do ABC (UFABC).
13.1 MCTest-5, com Moodle
Artigo sobre a exporta¸ao de quest˜oes param´etricas para o Moodle usando
o MCTest
O artigo de Zampirolli et al. (2021b) aborda a exporta¸ao de quest˜oes param´etricas para o
Moodle atrav´es do MCTest, apresentado em detalhes no Cap´ıtulo 9 Varia¸oes de exames com
QM+QT para o Moodle. Neste cap´ıtulo, ´e explorada uma funcionalidade interessante do MCTest
203
CAP
´
ITULO 13. MCTEST+MOODLE+VPL
que permite exportar varia¸oes de exames nos formatos Aiken e XML, os quais podem ser utilizados
pelo Moodle para criar um banco de quest˜oes.
Enquanto o Moodle suporta a cria¸ao de quest˜oes parametrizadas usando valores curinga,
essas quest˜oes possuem limita¸oes em rela¸ao `as fun¸oes dispon´ıveis na linguagem PHP. Ao utilizar
o MCTest para criar o banco de quest˜oes, obt´em-se uma vantagem, uma vez que ele suporta diversos
tipos de quest˜oes parametrizadas. Por exemplo, ´e poss´ıvel criar um exame contendo QMs e QTs com
respostas exatas. Em seguida, o exame ´e configurado para gerar varia¸oes, salvando-o nos formatos
Aiken ou XML. Posteriormente, esses arquivos podem ser importados para o banco de quest˜oes do
Moodle, permitindo a cria¸ao de uma atividade com as quest˜oes rec´em-importadas. Dessa forma, ´e
poss´ıvel criar atividades muito mais personalizadas, superando as limita¸oes dos curingas oferecidos
apenas pelo Moodle.
O cap´ıtulo detalha a cria¸ao de um exame composto por trˆes QMs param´etricas e uma QT
com resposta exata. Para cada quest˜ao, ao fornecidos exemplos de implementa¸ao e explica¸ao
sobre como o MCTest pode ser utilizado para gerar diferentes varia¸oes.
Al´em disso, ao apresentados detalhes sobre o conte´udo dos arquivos nos formatos Aiken
e XML, utilizados para armazenar QMs e QTs com respostas exatas.
´
E importante ressaltar a
necessidade de remover os comenarios adicionados pelo MCTest nos arquivos Aiken antes de import´a-
los para o Moodle. No caso dos arquivos XML, ´e enfatizada a complexidade da sintaxe e a importˆancia
de remover os comenarios em L
A
T
E
X presentes em cada quest˜ao no MCTest. Deve-se tamb´em atentar
para o formato utilizado, como ormulas matem´aticas, que podem se tornar inalidas no Moodle
devido `a sua limita¸ao na formata¸ao de quest˜oes.
13.2 MCTest-5, com Moodle+VPL
Durante a pandemia de COVID-19, o MCTest desempenhou um papel crucial ao permitir a
avalia¸ao remota de milhares de estudantes, principalmente em disciplinas que envolvem exerc´ıcios
de programa¸ao (EP). Foram implementadas e validadas diversas funcionalidades em turmas para
viabilizar esse processo, com destaque para as principais melhorias apresentadas nesta se¸ao.
13.2.1 Artigo com a primeira integra¸ao entre MCTest+Moodle+VPL
Enquanto a Se¸ao 12.1.3 Artigo definindo a parametriza¸ao do MCTest ap´os a vers˜ao 4
resumiu a primeira publica¸ao sobre a parte param´etrica, a Se¸ao 12.2.1 Artigo apresentando a
primeira vers˜ao web do MCTest utilizou essa parametriza¸ao na vers˜ao web do MCTest. Nesta pri-
meira integra¸ao, as corre¸oes dos EPs eram realizadas manualmente. Isso envolvia baixar todas as
submiss˜oes dos estudantes, executar scripts para testar os odigos submetidos e, posteriormente, atri-
buir as notas manualmente por parte dos professores. Nos resultados das pr´oximas se¸oes, somente
a cria¸ao de novas quest˜oes foi realizada de forma manual, conforme ser´a detalhado a seguir.
O artigo de Zampirolli et al. (2020), resumido nesta se¸ao, apresenta uma solu¸ao para sim-
plificar a cria¸ao e corre¸ao de quest˜oes param´etricas em uma disciplina de Processamento da In-
forma¸ao (ou Introdu¸ao `a Programa¸ao, IP, ou tamb´em CS1) com abordagem de ensino h´ıbrido
Francisco de Assis Zampirolli MCTest 204
13.2. MCTEST-5, COM MOODLE+VPL
(IP-BL blended learning). A solu¸ao integra a ferramenta de odigo aberto MCTest com o Moo-
dle e o plugin VPL (Virtual Programming Lab) (PINO; ROYO; FIGUEROA, 2012), permitindo a
gera¸ao e avalia¸ao autom´atica de quest˜oes param´etricas relacionadas `a linguagem de programa¸ao.
Essa abordagem foi aplicada em duas turmas da disciplina, totalizando 171 estudantes matriculados,
e utilizou a linguagem de programa¸ao Java.
M´etodo
A primeira parte do artigo aborda a parametriza¸ao de QTs destinadas aos estudantes para
serem respondidas em folha de papel, com corre¸ao manual. A quest˜ao apresentada ´e uma varia¸ao
do teste de mesa, conforme demonstrado nos odigos 5.5 e 5.6. Esse tipo de quest˜ao foi inclu´ıdo no
Exame 1 da disciplina.
A segunda parte deste artigo apresenta uma quest˜ao parametrizada que pode ser submetida
pelos estudantes como atividade VPL no Moodle. Essa quest˜ao foi aplicada no Exame 2 e requer a
resolu¸ao utilizando uma linguagem de programa¸ao. Embora o IP-BL tenha adotado Java, qualquer
linguagem de programa¸ao suportada pelo VPL do Moodle pode ser utilizada para resolver a quest˜ao.
O exemplo de quest˜ao apresentado no artigo envolve um operador e dois vetores. O operador e o
tamanho dos vetores ao parˆametros que podem ser modificados para obter arios modelos da mesma
quest˜ao.
A principal contribui¸ao deste artigo ´e o uso de quest˜oes param´etricas com avalia¸ao auto-
matizada usando o VPL. O MCTest produz quest˜oes param´etricas, conforme descrito nos cap´ıtulos
anteriores. No entanto, uma grande dificuldade para os professores em disciplinas de programa¸ao
com muitos estudantes ´e a corre¸ao e o feedback. O VPL veio para fornecer essa parte, mas at´e
enao, sem abordar a parte param´etrica. Para resolver isso, o artigo apresentou um etodo para
automatizar o EP parametrizado, sendo a principal contribui¸ao para o estado da arte da Tecnologia
da Informa¸ao e Comunica¸ao (TIC) na educa¸ao apresentada neste artigo.
O sistema padr˜ao do VPL aceitava apenas uma ´unica vers˜ao de uma quest˜ao, o que exigiria
criar uma avalia¸ao pr´atica de EP para cada vers˜ao de cada quest˜ao em um exame. Por exemplo, em
um exame com trˆes quest˜oes, cada uma com seis varia¸oes, o professor precisaria criar e configurar
18 avalia¸oes pr´aticas diferentes. Al´em disso, os estudantes precisam escolher as vers˜oes corretas
segundo as avalia¸oes exclusivas, o que pode levar a confus˜oes e erros.
Utilizando o sistema modificado, o professor precisa criar trˆes quest˜oes e 6 casos de teste.
Em seguida, o estudante precisa enviar um segundo arquivo TXT contendo uma ´unica linha como
“MODELO: A”, que representa o modelo da quest˜ao, definida no PDF do exame. Esse arquivo
de texto ´e analisado utilizando uma express˜ao regular para isolar o odigo de modelo para aquele
estudante, e em seguida, ´e usado para escolher o modelo correto dos arquivos de casos de teste
utilizados pelo professor. Cada modelo tem seu pr´oprio arquivo de casos de teste, que substitui o
arquivo padr˜ao do VPL.
Ap´os a cria¸ao de uma atividade do VPL no Moodle, em “Arquivos de execu¸ao”, o professor
precisa adicionar seis casos de teste e outros arquivos dispon´ıveis em github.com/fzampirolli/mctest,
na pasta VPL_modification/V1-select_using_second_file. Esses arquivos foram criados pelo
Francisco de Assis Zampirolli MCTest 205
CAP
´
ITULO 13. MCTEST+MOODLE+VPL
Heitor Rodrigues Savegnago e seu orientador Prof. Dr. Paulo Henrique Pisani.
Como o etodo apresentado no artigo a est´a ultrapassado, ele ao ser´a replicado neste livro.
No entanto, um etodo mais atualizado e aprimorado foi apresentado no Cap´ıtulo 10 Exames com
MCTest+Moodle+VPL, eliminando a necessidade desses modelos.
Experimentos
Nos primeiros quatro meses de 2019, a disciplina CS1 recebeu um total de 1.437 matr´ıculas de
estudantes distribu´ıdos em 46 turmas presenciais ou blended learning (IP-BL). As turmas presenciais
adotaram as linguagens de programa¸ao Java (36/46=78% das turmas) ou Python. Em contraste,
as turmas de IP-BL aplicaram uma combina¸ao de pseudoodigo e Java (2/46=4%), ou seja, os
estudantes desenvolveram solu¸oes em pseudoodigo (atrav´es da ferramenta Portugol Studio) e as
traduziram para odigo Java. O foco deste artigo ´e nas turmas de IP-BL, onde a proposta foi aplicada
em 2019. Analisando as ofertas anteriores, foi observado uma melhora geral na oferta no primeiro
per´ıodo de 2019, quando o m´etodo do artigo foi aplicado. No entanto, os autores ao puderam
afirmar que essa ´e a raz˜ao para o melhor desempenho.
13.2.2 Artigo aplicando a integra¸c˜ao MCTest+Moodle+VPL em CS0
O artigo de Zampirolli et al. (2021) apresenta o contexto e desafios da educa¸ao a distˆancia
devido `a pandemia, destacando a adapta¸ao de sistemas de odigo aberto, como o Moodle e o MCTest.
As principais contribui¸oes ao a melhoria das capacidades de cria¸ao de atividades individualizadas
e a integra¸ao do MCTest com o plugin VPL do Moodle.
Neste artigo, ´e apresentado um etodo para criar e corrigir EPs parametrizados. A con-
tribui¸ao principal consiste em gerar listas unificadas de exerc´ıcios param´etricos, para as quais ao
produzidos casos de teste automaticamente. Esse etodo foi validado na disciplina de Bases Compu-
tacionais da Ciˆencia (CS0) durante a pandemia de COVID-19. As listas de exerc´ıcios individualizados
foram enviadas semanalmente por e-mail para os estudantes por uma adapta¸ao do sistema MCTest.
A corre¸ao autom´atica foi realizada por meio de uma adapta¸ao no plugin VPL do Moodle. Os
recursos propostos foram utilizados por 28 turmas, totalizando 1.407 estudantes. Um question´ario
enviado aos estudantes revelou que cerca de 82% deles aprovaram o etodo.
M´etodo
Os odigos 5.12 e 5.13 introduziram as QTs param´etricas com a integra¸ao MCTest+Moodle+
VPL, e o Cap´ıtulo 10 Exames com MCTest+Moodle+VPL apresentou o processo de cria¸ao de um
exame com essa integra¸ao. O artigo apresenta o primeiro experimento utilizando esse processo na
disciplina de Bases Computacionais da Ciˆencia (CS0) na UFABC em 2020, que ser´a resumido nesta
se¸ao.
O artigo tamb´em apresenta exemplos de quest˜oes param´etricas e explica como compilar o
conte´udo das quest˜oes utilizando o MCTest. Foram realizadas melhorias em rela¸ao `a vers˜ao anterior
do m´etodo, como a gera¸ao autom´atica de quest˜oes agrupadas em uma lista semanal em PDF enviada
Francisco de Assis Zampirolli MCTest 206
13.2. MCTEST-5, COM MOODLE+VPL
por e-mail para cada estudante, evitando a repeti¸ao de exerc´ıcios, e a elimina¸ao da necessidade de
cria¸ao manual de casos de teste para cada modelo.
Em resumo, o m´etodo utilizado para produzir as listas semanais foi o seguinte:
1. Elaborar quest˜oes conforme o modelo apresentado;
2. Montar as quest˜oes em um Exame, especificando tamb´em as turmas;
3. Escolher o formato “Json” ao selecionar “Criar-Varia¸oes” na agina de Exame. Os casos de
teste ser˜ao enviados por e-mail para o professor em um arquivo *_linker.json;
4. Clicar no bot˜ao “Criar-PDF” do exame, escolhendo antes “Sim” para feedback ao estudante.
O MCTest enviar´a ao professor o arquivo *_students_variations.csv que especifica qual
varia¸ao foi selecionada para cada estudante;
5. Mover ambos os arquivos para “Arquivos de Execu¸ao” em uma atividade VPL do Mo-
odle, ap´os renome´a-los como linker.json e students_variations.csv, juntamente com
os arquivos de adapta¸ao do VPL dispon´ıveis em github.com/fzampirolli/mctest, na pasta
VPL_modification/V10-new_selector;
6. Esses arquivos incluem makefile, vpl_evaluate.sh e zip.tar.gz.b64.
Esses arquivos disponibilizados no GitHub tamem foram criados pelo Heitor Rodrigues Sa-
vegnago e seu orientador Prof. Dr. Paulo Henrique Pisani.
Experimentos
Devido `a diversidade de crit´erios de avalia¸ao adotados pelos arios professores, ao foi poss´ıvel
unificar a an´alise das 43 turmas de CS0 em 2020.2 em rela¸ao `as notas finais.
Cada professor aplicou seu pr´oprio crit´erio para calcular as notas finais dos estudantes, se-
guindo as regras da universidade, que inclu´ıam dar pelo menos 72 horas para os estudantes enviarem
suas solu¸oes de exames, o que ajudava em caso de limita¸oes de acesso `a internet. Alguns professores
optaram por utilizar apenas as listas unificadas para calcular as notas finais dos estudantes, enquanto
outros combinaram as listas com projetos em grupo, e alguns ainda inclu´ıram exames tradicionais.
Apesar da dificuldade de comparar os desempenhos, constatou-se que: (1) Os 505 estudantes
das 15 turmas que ao adotaram nenhum dos recursos obtiveram uma taxa de aprovao de 80%;
(2) A mesma taxa foi alcan¸cada pelos 137 estudantes das quatro turmas que adotaram apenas o
material unificado; (3) Utilizando material e listas unificados, tratadas pelo MCTest+Moodle+VPL,
765 estudantes restantes das 24 turmas obtiveram uma taxa de aprovao de 81%. Esse n´umero
contrasta com a edia hist´orica anterior de 75%, calculada para 23.461 estudantes desde 2009.
´
E
importante destacar que a disciplina CS0 em 2020.2 foi realizada 100% a distˆancia pela primeira
vez. Para contornar a imprecis˜ao devido aos diversos crit´erios de avalia¸ao, no final de 2020.2, um
question´ario foi enviado aos professores, tutores e estudantes para avaliar a metodologia proposta.
Embora apenas quatro professores e quatro tutores tenham retornado com seus coment´arios, foram
obtidas 443 respostas dos estudantes, o que foi bastante satisfat´orio, como apresentado no artigo.
Francisco de Assis Zampirolli MCTest 207
CAP
´
ITULO 13. MCTEST+MOODLE+VPL
13.2.3 Artigo sobre o uso de m´ultiplas linguagens de programa¸ao em
CS1
No artigo de Zampirolli et al. (2021), foi aplicado o mesmo m´etodo apresentado anteriormente,
na disciplina de Processamento da Informa¸ao (ou Introdu¸ao `a Programa¸ao, IP, ou tamb´em CS1)
da UFABC, durante a pandemia. A principal contribui¸ao deste novo artigo foi disponibilizar mate-
rial did´atico e avaliativo em seis linguagens de programa¸ao para corre¸ao autom´atica utilizando a
integra¸ao MCTest+Moodle+VPL.
M´etodo
O etodo apresentado no artigo permite que cada estudante escolha sua linguagem de pro-
grama¸ao preferida para aprender ogica de programa¸ao. O material did´atico ´e disponibilizado em
arias linguagens por meio de notebooks no Colab. Al´em disso, os estudantes podem optar por dife-
rentes linguagens de programa¸ao para praticar com exerc´ıcios e enviar suas solu¸oes como odigos
de programa¸ao. As solu¸oes ao individualizadas devido ao uso de quest˜oes param´etricas geradas
com a integra¸ao MCTest+Moodle+VPL.
A gera¸ao autom´atica do material did´atico para seis linguagens de programa¸ao ´e detalhada
no artigo, utilizando o conte´udo do livro “Processando a Informa¸ao” de Neves e Zampirolli (2017).
O livro possui sete cap´ıtulos que abordam conceitos fundamentais, estrutura¸ao de odigo, condicio-
nais, la¸cos, vetores, matrizes e opicos avan¸cados. Para cada um dos seis primeiros cap´ıtulos, foram
criados arquivos no formato ipynb contendo as notas de aula e exemplos em arias linguagens. Al´em
disso, foram criados notebooks para as listas de exerc´ıcios pr´aticos, todos armazenados na pasta “all”
(ver Figura 13.1) do Google Drive disponibilizado pela Editora da UFABC, no seguinte endere¸co:
https://editora.ufabc.edu.br/matematica-e-ciencias-da-computacao/58-processando-a-informacao
(a) (b)
Figura 13.1: (a) estrutura de arquivos e pastas; (b) recorte da estrutura de arquivos e pastas gerados
automaticamente, detalhando a pasta 1.py para Python. Fonte: Zampirolli et al. (2021).
Em cada arquivo ipynb da pasta “all” da Figura 13.1, a primeira linha de cada elula, seja
de texto ou odigo, pode conter a(s) linguagem(ns) de programa¸ao escolhida(s) para o conte´udo
Francisco de Assis Zampirolli MCTest 208
13.2. MCTEST-5, COM MOODLE+VPL
daquela elula. Isso segue a sintaxe #[tipo1]#[tipo2]#...#[tipon]#, em que tipoi ´e a extens˜ao
do arquivo do odigo na linguagem escolhida.
O filtro filterNotebook.py, dispon´ıvel em github.com/fzampirolli/filterNotebook, permite
filtrar notebooks com base na linguagem de programa¸ao e convertˆe-los para os formatos HTML, La-
TeX e PDF. Essa ferramenta suporta arias linguagens de programa¸ao, e o n´umero de combina¸oes
poss´ıveis depende do n´umero de linguagens definidas.
Experimentos
O m´etodo foi validado em 5 turmas remotas, totalizando 223 estudantes, com uma taxa m´edia
de aprovao de 90%. Ele se mostrou facilmente adapt´avel e oferece flexibilidade aos estudantes,
possibilitando uma abordagem mais personalizada no processo de aprendizagem de programa¸ao.
Os estudantes da disciplina CS1 foram divididos em dois grupos. O Grupo 1 teve aulas
s´ıncronas (te´oricas e pr´aticas) e os estudantes foram obrigados a gravar v´ıdeos explicativos para as
atividades. O Grupo 2 teve aulas ass´ıncronas e os estudantes ao foram obrigados a gravar v´ıdeos
explicativos. Os resultados do question´ario aplicado aos estudantes mostraram que o Grupo 1 teve
uma avalia¸ao mais positiva da disciplina do que o Grupo 2. Em particular, os estudantes do Grupo
1 ficaram mais satisfeitos com as aulas s´ıncronas, com o material did´atico e com as avalia¸oes. A
an´alise estat´ıstica tamb´em mostrou que o m´etodo aplicado ao Grupo 1 foi estatisticamente melhor do
que o etodo aplicado ao Grupo 2. Os estudantes dos dois grupos concordaram que a disciplina foi
importante para aprender sobre programa¸ao e o conhecimento de arias linguagens de programa¸ao
´e ´util para a carreira profissional.
Os resultados deste estudo sugerem que as aulas s´ıncronas podem ser uma forma eficaz de
ensinar programa¸ao. No entanto, ´e importante que as aulas s´ıncronas sejam bem planejadas e os
estudantes sejam motivados a participar.
13.2.4 Artigo aplicando a integra¸c˜ao MCTest+Moodle+VPL em CS1
O artigo de Zampirolli et al. (2021a), publicado na revista Computer Applications in En-
gineering Education e resumido nesta se¸ao, descreve um experimento significativo envolvendo a
implementa¸ao do m´etodo apresentado na Se¸ao 13.2.1 Artigo com a primeira integra¸ao entre
MCTest+Moodle+VPL (ZAMPIROLLI et al., 2020). Esse estudo complementa um artigo ante-
rior publicado na mesma revista, resumido na Se¸ao 12.1.2 Artigo comparando as modalidades
semipresencial e presencial CS1 com base na utilidade do MCTest-4 (ZAMPIROLLI et al., 2018).
Nesse novo estudo, a integra¸ao MCTest+Moodle+VPL foi incorporada como parte do pro-
cesso de ensino e avalia¸ao na disciplina CS1. Inicialmente, tentou-se publicar tanto o m´etodo quanto
o experimento em um ´unico artigo nesta revista. No entanto, os revisores consideraram o conte´udo
muito denso, o que levou `a separa¸ao em dois artigos distintos: Zampirolli et al. (2020) e Zampirolli
et al. (2021a).
Francisco de Assis Zampirolli MCTest 209
CAP
´
ITULO 13. MCTEST+MOODLE+VPL
M´etodo
A principal caracter´ıstica da abordagem consiste na implementa¸ao da avalia¸ao automatizada
(AA) em uma disciplina CS1 com arias turmas. Esse etodo engloba a formula¸ao de quest˜oes
individuais para cada estudante e a disponibiliza¸ao de avalia¸ao e feedback autom´aticos.
Para a realiza¸ao da avalia¸ao unificada, foram empregadas quest˜oes param´etricas e respostas
(nos casos de QMs) atrav´es do MCTest. Essa estrat´egia possibilitou a combina¸ao de distintos tipos
de quest˜oes para gerar um exame personalizado para cada estudante. a para as QTs, foi utilizada a
integra¸ao MCTest+Moodle+VPL, na qual os estudantes tiveram que submeter EPs em atividades
VPL do Moodle.
Importante destacar que todo o processo avaliativo utilizado neste artigo foi previamente
detalhado e exemplificado em cap´ıtulos anteriores deste livro. Al´em disso, ´e poss´ıvel criar arias
turmas pelo coordenador de disciplina, conforme detalhado na Se¸ao 3.2.2 Criar arias turmas com
arquivo CSV. Da mesma forma, ´e explicado no Cap´ıtulo 6 Vis˜ao geral dos exames como enviar um
exame tamb´em para arias turmas.
Experimentos
A principal caracter´ıstica do experimento realizado ´e a capacidade de aplicar AA e exames
unificados parametrizados em diferentes linguagens de programa¸ao, utilizando as ferramentas de
odigo aberto MCTest e Moodle (com o plugin VPL). No primeiro trimestre de 2019, 19 das 44
turmas (presenciais) adotaram a abordagem, alcan¸cando uma taxa de aprovao mais alta (67,5%)
em compara¸ao com as turmas que ao utilizaram a solu¸ao de AA (59,1%), mantendo uma dispers˜ao
padr˜ao semelhante. Resultados preliminares tamb´em indicaram uma forte correla¸ao linear entre a
taxa de aprovao e a edia das notas nas AA. Nas turmas de aprendizagem mista (blended learning),
duas turmas utilizaram o m´etodo nos exames unificados, com uma taxa de aprovao de 70,4%. Esses
resultados corroboram estudos anteriores, indicando que a avalia¸ao cont´ınua combinada com feedback
imediato pode contribuir para o processo de aprendizagem dos estudantes.
13.2.5 Artigo explorando a integra¸c˜ao de jogos no ensino de CS0
O artigo de Josko e Zampirolli (2023) discute uma interven¸ao pedag´ogica que emprega ele-
mentos de gamifica¸ao para a introdu¸ao de conceitos de ogica de programa¸ao em estudantes. No
estudo, os autores realizaram um estudo de caso envolvendo 48 alunos matriculados no curso intro-
dut´orio de programa¸ao (CS0) intitulado Bases Computacionais da Ciˆencia, parte do programa de
Bacharelado em Ciˆencia e Tecnologia da UFABC. Importante ressaltar que o curso foi ministrado
online devido `a pandemia.
M´etodo
A interven¸ao pedag´ogica consistiu em construir gradualmente um jogo simples utilizando
a biblioteca Pygame (pygame.org) do Python no Google Colab (colab.google). Conceitos como
instru¸oes sequenciais, bibliotecas, estruturas de decis˜ao e de repeti¸ao, al´em de simula¸oes, foram
Francisco de Assis Zampirolli MCTest 210
13.3. CONSIDERAC¸
˜
OES FINAIS
introduzidos `a medida que novas funcionalidades eram inclu´ıdas no jogo. Al´em disso, foram utilizadas
avalia¸oes autom´aticas e feedback para os estudantes, conforme relatado em outro artigo descrito na
Se¸ao 13.2.2 Artigo aplicando a integra¸ao MCTest+Moodle+VPL em CS0.
Experimentos
Os autores aplicaram um question´ario para capturar as perspectivas dos estudantes sobre a
abordagem. As an´alises sugeriram que os elementos de gamifica¸ao melhoraram a motivao em
rela¸ao aos opicos do curso. Adicionalmente, a taxa de reprovao do grupo estudado foi menor do
que a m´edia de outras turmas no per´ıodo da pandemia.
Assim, a interven¸ao recebeu feedback positivo dos estudantes. Entretanto, os autores afirmam
que estudos controlados com maiores amostras ao necess´arios para avaliar plenamente a efetividade
da abordagem.
13.3 Considera¸oes finais
Neste cap´ıtulo, foram apresentados arios artigos que relatam experiˆencias importantes com
a integra¸ao do MCTest com o Moodle e o plugin VPL. Essas integra¸oes permitiram a avalia¸ao
automatizada de EPs em diversas disciplinas, com destaque para:
Cria¸ao de QTs param´etricas e de QMs corrigidas manualmente e automaticamente;
Exporta¸ao de quest˜oes do MCTest para o banco de quest˜oes do Moodle, superando limita¸oes;
Gera¸ao de listas unificadas de EPs param´etricos com casos de teste automatizados;
Disponibiliza¸ao de material did´atico e avaliativo em arias linguagens de programa¸ao;
Uso de avalia¸ao cont´ınua e feedback imediato, resultando em maior taxa de aprovao.
Os artigos apresentam a evolu¸ao e aprimoramentos dessas integra¸oes ao longo do tempo.
Al´em disso, foi observado que as turmas que utilizaram os m´etodos propostos tiveram um desempenho
melhor. No entanto, ´e dif´ıcil afirmar que essa foi a ´unica raz˜ao para o melhor desempenho.
Portanto, ´e poss´ıvel concluir que as abordagens propostas neste cap´ıtulo se mostraram eficazes
e pr´aticas, especialmente no contexto de ensino remoto durante a pandemia COVID-19. Essas inte-
gra¸oes abrem novas possibilidades para oferecer avalia¸oes personalizadas, automatizadas e flex´ıveis
em diversas disciplinas, como as de programa¸ao.
Francisco de Assis Zampirolli MCTest 211
CAP
´
ITULO 13. MCTEST+MOODLE+VPL
Francisco de Assis Zampirolli MCTest 212
Cap´ıtulo 14
Conclus˜oes
Conte´udo
14.1 Novas possibilidades de aprimoramento . . . . . . . . . . . . . . . . . . . . . . 214
14.2 Novas publica¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
14.3 Novas edi¸oes deste livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
O MCTest, sistema apresentado neste livro, proporciona aos professores uma ferramenta po-
derosa para aprimorar a avalia¸ao das habilidades dos estudantes. Ao utilizar o MCTest, os docentes
conseguem reduzir o esfor¸co de cria¸ao e corre¸ao de exames e exerc´ıcios envolvendo quest˜oes de
m´ultipla escolha (QMs) ou dissertativas (QTs). As QTs podem conter exerc´ıcios de programa¸ao
(EPs), permitindo que os estudantes submetam os odigos em atividades VPL do Moodle.
Ao longo do tempo, o MCTest evoluiu por meio de suas diversas vers˜oes, incorporando novas
tecnologias, metodologias e objetivos. Uma contribui¸ao significativa do MCTest ´e sua habilidade
em criar quest˜oes parametrizadas, que combinam descri¸oes em L
A
T
E
X com odigos em Python.
O MCTest foi empregado com sucesso em processos seletivos da Especializa¸ao em Tecno-
logias e Sistemas de Informa¸ao e na Escola Preparat´oria da UFABC, bem como em exames de
disciplinas ministradas na gradua¸ao e na os-gradua¸ao. Essa efic´acia foi comprovada na avalia¸ao
de disciplinas de computa¸ao e outras ´areas.
A natureza de odigo aberto do MCTest, dispon´ıvel no GitHub, permite que ele seja utilizado
e modificado sob a licen¸ca AGPL3. No entanto, cada institui¸ao deve definir seus pr´oprios crit´erios
em rela¸ao aos direitos autorais do conte´udo disponibilizado no MCTest.
Este livro foi organizado em quatro partes principais, focadas em diferentes aspectos do MC-
Test, abrangendo desde os fundamentos at´e experimentos. Na Parte I Fundamentos, ao abordados
a introdu¸ao, componentes asicos e funcionalidades essenciais do MCTest. A Parte II Quest˜oes
no MCTest, trata dos diferentes tipos de quest˜oes dispon´ıveis, como QMs e QTs com odigo. A
Parte III Exames, aborda o processo de cria¸ao e gerenciamento de exames no MCTest, incluindo
a integra¸ao com Moodle e VPL. Por fim, a Parte IV Experimentos de Uso do MCTest, apresenta
213
CAP
´
ITULO 14. CONCLUS
˜
OES
estudos de caso e exemplos pr´aticos do uso do sistema em ambientes educacionais, publicados em
artigos cient´ıficos, envolvendo quadro de respostas (QR), QMs e/ou QTs e a integra¸ao com Moodle
e VPL. Essa estrutura possibilita uma abordagem abrangente sobre o sistema, atendendo a diferentes
necessidades dos usu´arios.
Durante a jornada desta obra, foram exploradas as funcionalidades do MCTest, apresentando-
se suas principais caracter´ısticas e recursos. Espera-se que esta obra tenha sido proveitosa aos leitores,
fornecendo uma vis˜ao detalhada de como o MCTest pode ser utilizado de maneira eficaz em contextos
educacionais.
O MCTest continua em constante evolu¸ao e aprimoramento, incentivando os usu´arios a con-
tribu´ırem com suas experiˆencias e feedbacks para torn´a-lo ainda mais eficiente e adequado `as deman-
das educacionais em evolu¸ao.
14.1 Novas possibilidades de aprimoramento
O MCTest oferece oportunidades para o desenvolvimento de novas funcionalidades, por meio
de orienta¸oes de trabalho de conclus˜ao de curso e mestrado. Alguns trabalhos em andamento de
melhorias incluem:
Agrupamento de quest˜oes utilizando processamento de linguagem natural: possibilitando a
organiza¸ao e categoriza¸ao mais eficiente das quest˜oes com base em t´ecnicas de processamento
de linguagem natural, tornando a busca e sele¸ao de quest˜oes mais precisa e relevante;
Melhorias no empacotamento do MCTest para futuras implanta¸oes: visando facilitar a ins-
tala¸ao e utiliza¸ao do sistema em diferentes ambientes, aprimorando sua usabilidade para os
usu´arios;
Implementa¸ao de aprendizado adapt´avel: utilizando dados de desempenho dos estudantes
para criar avalia¸oes personalizadas no MCTest. Isso permitiria que o sistema se adapte ao
progresso individual de cada estudante, proporcionando uma experiˆencia de aprendizado mais
eficaz e direcionada, de acordo com suas necessidades espec´ıficas;
Facilita¸ao da corre¸ao e automa¸ao de exames: buscando uma integra¸ao mais estreita entre o
MCTest e a plataforma Moodle. Essa integra¸ao permitiria que os resultados das avalia¸oes fos-
sem automaticamente registrados no ambiente do Moodle, simplificando o processo de corre¸ao
e oferecendo um feedback imediato e detalhado aos estudantes sobre seu desempenho;
Desenvolvimento de um sistema distribu´ıdo em Python para gera¸ao e corre¸ao segura de
exames, com a capacidade de executar quest˜oes param´etricas em servidores externos, visando
aumentar a seguran¸ca e reduzir a vulnerabilidade do servidor do MCTest.
Essas potenciais melhorias agregam ainda mais utilidade e eficiˆencia ao MCTest. Al´em disso,
proporcionam oportunidades de pesquisa e desenvolvimento para estudantes interessados em contri-
buir para o aprimoramento cont´ınuo do sistema, promovendo sua evolu¸ao para atender `as necessi-
dades educacionais em constante mudan¸ca.
Francisco de Assis Zampirolli MCTest 214
14.2. NOVAS PUBLICAC¸
˜
OES
Al´em das mencionadas, existem diversas outras possibilidades de melhorias para o sistema.
Algumas delas incluem:
Implementar a funcionalidade de salvar e recuperar o banco de quest˜oes de um professor em
formato JSON, permitindo uma gest˜ao mais eficiente e organizada das quest˜oes;
Utilizar recursos de seguran¸ca para proteger as comunica¸oes entre o cliente e o servidor, como
HTTPS, evitando potenciais ataques de intercepta¸ao de dados;
Implementar a valida¸ao de e-mails dos usu´arios para garantir que apenas usu´arios autorizados
possam acessar determinadas funcionalidades do sistema;
Ampliar a variedade de tipos de quest˜oes, al´em das QMs e QTs, para possibilitar a cria¸ao de
avalia¸oes mais diversificadas e ricas em conte´udo (TEUBL; BATISTA; ZAMPIROLLI, 2021;
TEUBL; BATISTA; ZAMPIROLLI, 2022);
Aprimorar a interface do usu´ario, tornando-a mais intuitiva e amig´avel, a fim de facilitar a
navega¸ao e o uso do sistema;
Implementar as avalia¸oes das habilidades e competˆencias dos estudantes em atividades envol-
vendo EPs em atividades VPL do Moodle;
Incorporar funcionalidades de an´alise de dados e estat´ısticas para os educadores poderem ob-
ter vis˜oes sobre o progresso dos estudantes e a efic´acia das quest˜oes propostas, por exemplo,
utilizando a Teoria de Resposta ao Item.
Essas melhorias ao apenas algumas das possibilidades que podem tornar o sistema mais
completo, seguro e eficiente, atendendo melhor `as necessidades dos usu´arios e proporcionando uma
experiˆencia de aprendizado mais enriquecedora.
14.2 Novas publica¸oes
Atualmente, est˜ao em fase de an´alise mais novos artigos diretamente relacionados ao MC-
Test. Um deles trata do uso bem-sucedido do MCTest na disciplina de Processamento Digital de
Imagens. Esse estudo examina como o MCTest pode ser aplicado de maneira eficaz para avaliar os
conhecimentos adquiridos pelos estudantes nessa disciplina espec´ıfica, contribuindo para uma melhor
compreens˜ao dos resultados e progresso dos estudantes.
Al´em desse, a inten¸ao ´e escrever mais artigos `a medida que novas funcionalidades relevantes
forem incorporadas ao MCTest. A evolu¸ao cont´ınua do sistema possibilita a explora¸ao de diversas
´areas de pesquisa e a identifica¸ao de novas oportunidades para aprimorar o processo de avalia¸ao
das habilidades dos estudantes.
Outros pesquisadores da ´area tamb´em tˆem a oportunidade de adotar este sistema de odigo
aberto para implementar suas pr´oprias contribui¸oes, desde que as compartilhem publicamente, per-
mitindo que outros tamb´em se beneficiem das melhorias realizadas.
Francisco de Assis Zampirolli MCTest 215
CAP
´
ITULO 14. CONCLUS
˜
OES
Com essas publica¸oes, busca-se disseminar o conhecimento e compartilhar experiˆencias sobre
o uso do MCTest em diferentes contextos acadˆemicos. A produ¸ao cient´ıfica nessa ´area ´e fundamental
para promover a efic´acia do sistema e incentivar o desenvolvimento de novas pr´aticas pedag´ogicas e
tecnol´ogicas no ensino em geral. As novas publica¸oes contribuir˜ao para a expans˜ao do conhecimento
sobre o MCTest e sua aplicabilidade em diversas disciplinas e cen´arios educacionais.
14.3 Novas edi¸oes deste livro
Como perspectiva para futuras edi¸oes deste livro, est˜ao previstas inclus˜oes de novas partes
que expandam o escopo das informa¸oes apresentadas. Dentre as possibilidades, destacam-se as
seguintes partes:
Integra¸ao com o Moodle: Uma parte dedicada `a integra¸ao entre o MCTest e o Moo-
dle, uma plataforma popular de aprendizado a distˆancia, permitiria explorar diversos tipos
de quest˜oes. Seriam abordadas quest˜oes cl´assicas, quest˜oes de odigo (VPL) e a sinergia do
MCTest com o Moodle e o VPL, proporcionando ao leitor uma vis˜ao mais abrangente das
possibilidades de integra¸ao entre essas ferramentas;
opicos Avan¸cados: Nessa se¸ao, os aspectos ecnicos do MCTest seriam aprofundados,
abordando temas como bibliotecas e instala¸oes, arquitetura de software, gerenciamento de
banco de dados, vis˜ao computacional e seguran¸ca. Essa abordagem detalhada permitiria ao
leitor compreender melhor os fundamentos e desafios ecnicos do sistema.
Essas adi¸oes seriam de grande valia para enriquecer ainda mais o conte´udo do livro, forne-
cendo aos leitores informa¸oes detalhadas sobre a integra¸ao do MCTest com outras plataformas e
aspectos ecnicos avan¸cados. Dessa forma, o livro se consolidaria como uma referˆencia abrangente e
atualizada sobre essa importante ferramenta de avalia¸ao de habilidades dos estudantes. A amplia¸ao
do escopo do livro permitiria acompanhar o progresso cont´ınuo do MCTest e atender `as demandas
dos leitores por informa¸oes relevantes e atualizadas sobre a ´area.
Gratid˜ao:
Expresso minha gratid˜ao a todos que participaram dessa jornada, e espera-se que
o MCTest continue a facilitar e melhorar o processo de avalia¸ao da aprendizagem
dos estudantes, ao mesmo tempo, em que reduz o trabalho dos professores, por meio
do uso dos recursos automatizados disponibilizados nas avalia¸oes. Dessa forma, os
professores poder˜ao dedicar-se a ofertar melhores materiais did´aticos e avaliativos,
beneficiando o processo educacional na totalidade.
Francisco de Assis Zampirolli MCTest 216
Bibliografia
BIRNBAUM, A. Some latent trait models and their use in inferring an examinee’s ability. Statistical
theories of mental test scores, Addison-Wesley, 1968.
CALSAVARA, A. et al. etodo baseado nos referenciais de forma¸ao da sbc para reestrutura¸ao
de descritivos de disciplinas de ciˆencia da computa¸ao em conformidade com as DCN de 2016. In:
Workshop sobre Educao em Computa¸ao. [S.l.: s.n.], 2018. <doi>.
CHINA, R. T.; ZAMPIROLLI, F. A. Corre¸ao autom´atica de testes de m´ultipla escolha utilizando
processamento de imagem e v´ıdeo no android. In: SICUFABC. [S.l.: s.n.], 2014. <url>.
CHINA, R. T. et al. An application for automatic multiple-choice test grading on android.
REVISTA BRASILEIRA DE INICIAC¸
˜
AO CIENT
´
IFICA, v. 3, p. 1–22, 2016. ISSN 2359232X.
CORREIA, R. C. M. et al. Ciˆencia da computa¸ao: A hist´oria e as caracter´ısticas dos cursos de
ciˆencia da computa¸ao no brasil. p. 12–16, 2018. <url>.
HINTZE, J.; NELSON, R. Violin plots: a box plot-density trace synergism. The American
Statistician, Taylor & Francis, v. 52, n. 2, p. 181–184, 1998.
HOGAN, E.; LI, R.; RAJ, A. G. S. CS0 vs. CS1: Understanding fears and confidence amongst
non-majors in introductory cs courses. In: Proceedings of the 54th ACM Technical Symposium on
Computer Science Education V. 1. [S.l.: s.n.], 2023. p. 25–31.
JOSKO, J. M.; ZAMPIROLLI, F. A. Introducing programming logic consistently through
gamification. In: Simp´osio Brasileiro de Inform´atica na Educao. [S.l.: s.n.], 2023.
JW, T. Exploratory data analysis. Reading: Addison-Wesley, 1977.
KOBAYASHI, G.; ZAMPIROLLI, F. A.; QUILICI-GONZALEZ, J. A. Report of a distance learning
course of specialization in information technology in a brazilian public university. In: IEEE Frontiers
in Education Conference. [S.l.: s.n.], 2016. <doi>.
LAMPORT, L. Latex–a document preparation system addison–wesley. Reading, MA, 1985.
NEVES, R.; ZAMPIROLLI, F. A. Processando a informa¸ao: um livro pr´atico de programa¸ao
independente de linguagem. ao Bernardo do Campo: EdUFABC, 2017. ISBN 9788568576717.
PINO, J. C. Rodr´ıguez-del; ROYO, E. R.; FIGUEROA, Z. H. A virtual programming lab for
moodle with automatic assessment and anti-plagiarism features. 2012.
SOUZA, F. R. d.; ZAMPIROLLI, F. A.; KOBAYASHI, G. Convolutional neural network applied
to code assignment grading. In: International Conference on Computer Supported Education. [S.l.:
s.n.], 2019. ISBN 9789897583674. <doi>.
217
BIBLIOGRAFIA
TEUBL, F.; BATISTA, V. R.; ZAMPIROLLI, F. A. Maketests: Generate and correct individualized
questions with many styles. In: International Conference on Computer Supported Education. [S.l.:
s.n.], 2021. <doi>.
TEUBL, F.; BATISTA, V. R.; ZAMPIROLLI, F. A. Maketests: A flexible generator and corrector
for hardcopy exams. In: Computer Supported Education. 1. ed. [S.l.: s.n.], 2022. p. 293–315. ISBN
9783031147562. <doi>.
ZAMPIROLLI, F. A. et al. Online assessments with parametric questions and automatic corrections:
an improvement for mctest using google forms and sheets. In: Simp´osio Brasileiro de Inform´atica
na Educao. [S.l.: s.n.], 2020. <doi>.
ZAMPIROLLI, F. A. et al. Experiments in selection processes of students for a crammer. In: Latin
American Conference on Learning Objects and Technologies. [S.l.: s.n.], 2021. <doi>.
ZAMPIROLLI, F. A. et al. Facilitating the generation of parametric questions and their export to
moodle. In: IEEE Frontiers in Education Conference. [S.l.: s.n.], 2021. <url>.
ZAMPIROLLI, F. A.; BATISTA, V. R.; QUILICI-GONZALEZ, J. A. An automatic generator
and corrector of multiple choice tests with random answer keys. In: IEEE Frontiers in Education
Conference. [S.l.: s.n.], 2016. <doi>.
ZAMPIROLLI, F. A. et al. Automated assessment with multiple-choice questions using weighted
answers. In: 13th International Conference on Computer Supported Education. [S.l.: s.n.], 2021.
<url>.
ZAMPIROLLI, F. A. et al. Automatic correction of multiple-choice tests on android devices. In:
Workshop de Vis˜ao Computacional. [S.l.: s.n.], 2015. <url>.
ZAMPIROLLI, F. A. et al. Evaluation process for an introductory programming course using
blended learning in engineering education. COMPUTER APPLICATIONS IN ENGINEERING
EDUCATION, v. 2018, p. 1–13, 2018. ISSN 10613773.
ZAMPIROLLI, F. A. et al. An experience of automated assessment in a large-scale introduction
programming course. COMPUTER APPLICATIONS IN ENGINEERING EDUCATION, p.
1284–1299, 2021. ISSN 10613773.
ZAMPIROLLI, F. A. et al. Interactive enem: exams with statistics and free access. In: Latin
American Conference on Learning Objects and Technologies. [S.l.: s.n.], 2021. <doi>.
ZAMPIROLLI, F. A. et al. Parameterized and automated assessment on an introductory
programming course. In: Simp´osio Brasileiro de Inform´atica na Educao. [S.l.: s.n.], 2020. <doi>.
ZAMPIROLLI, F. A.; QUILICI-GONZALEZ, J. A.; NEVES, R. Automatic correction of multiple-
choice tests using digital cameras and image processing. In: Workshop de Vis˜ao Computacional.
[S.l.: s.n.], 2013. <url>.
ZAMPIROLLI, F. A. et al. Automated assessment of parametric programming in a large-scale
course. In: Latin American Conference on Learning Objects and Technologies. [S.l.: s.n.], 2021.
<doi>.
ZAMPIROLLI, F. A.; TEUBL, F.; BATISTA, V. R. A generator and corrector of parametric
questions in hard copy. In: International Conference on Information Technology : New Generations.
[S.l.: s.n.], 2019. <url>.
Francisco de Assis Zampirolli MCTest 218
BIBLIOGRAFIA
ZAMPIROLLI, F. A.; TEUBL, F.; BATISTA, V. R. Online generator and corrector of parametric
questions in hard copy useful for the elaboration of thousands of individualized exams. In:
International Conference on Computer Supported Education. [S.l.]: SCITEPRESS - Science and
Technology Publications, Lda, 2019. ISBN 9789897583674. <doi>.
ZAMPIROLLI, F. A. et al. Introductory computer science course by adopting many programming
languages. In: Simp´osio Brasileiro de Inform´atica na Educao. [S.l.: s.n.], 2021. <doi>.
Francisco de Assis Zampirolli MCTest 219
BIBLIOGRAFIA
Francisco de Assis Zampirolli MCTest 220
Este livro ensina como criar e avaliar exames com questões
paramétricas, um tipo especial de questão que incorpora valores
aleatórios em seu enunciado. O livro também relata as melhores
experiências dos últimos 12 anos em avaliações automatizadas, que
proporcionaram benefícios para milhares de estudantes da UFABC.
Exemplo: Na área de Lógica de Programação, o livro apresenta um
programa que retorna a matriz "nordeste maior" a partir da matriz
de entrada, assim como ilustrado neste exemplo na capa. em
Processamento Digital de Imagens, a solução é alcançada por meio
da utilização de erosão ou dilatação com um elemento estruturante
de tamanho 3x3.
Obs.: Esta questão possui 16 variações, sendo 8 relacionadas às
direções cardeais e as opções de maior ou menor. Além disso, é
possível variar as dimensões da matriz e seus respectivos valores.
Para disciplinas mais avançadas, é possível aumentar a vizinhança,
por exemplo, para 5x5 ou 7x7, criando ainda mais variações.